如何利用React和Express搭建全栈JavaScript应用
时间:2023-10-01 09:08:09 251浏览 收藏
本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《如何利用React和Express搭建全栈JavaScript应用》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~
如何利用React和Express搭建全栈JavaScript应用
引言:
React和Express是目前非常流行的JavaScript框架,它们分别用于构建前端和后端应用。本文将介绍如何结合使用React和Express来搭建一个全栈JavaScript应用。我们将逐步讲解如何搭建一个简单的TodoList应用,同时提供具体的代码示例。
一、准备工作
在开始之前,我们需要准备一些必要的工具和环境:
Node.js和npm:确保已经安装了Node.js和npm(Node.js的包管理器),可以通过命令行检查它们是否已经安装成功,如下所示:
node -v npm -v
- 创建项目文件夹:在你的工作目录下创建一个新的文件夹,用来存放我们的全栈应用代码。
二、后端搭建
初始化项目:在项目文件夹下打开命令行,执行以下命令来初始化一个新的Node.js项目:
npm init -y
这将会创建一个默认的
package.json
文件,用来记录项目的相关信息和依赖包。安装Express和其他依赖:在命令行中执行以下命令来安装Express和其他需要的依赖:
npm install express body-parser cors --save
这里我们安装了Express、body-parser和cors,用来处理HTTP请求和跨域请求。
- 创建Express服务器:在项目文件夹的根目录下创建一个新的JavaScript文件,命名为
server.js
。打开server.js
,并添加以下内容:
const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.use(cors()); const PORT = process.env.PORT || 5000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });
这段代码首先引入了需要的依赖包,然后创建了一个Express实例并设置了一些中间件。最后,我们监听指定的端口(默认是5000)。
- 添加路由和API:继续编辑
server.js
,在已有的代码下方添加以下内容:
let todos = []; app.get('/api/todos', (req, res) => { res.json(todos); }); app.post('/api/todos', (req, res) => { const { todo } = req.body; todos.push(todo); res.json(todos); });
这段代码定义了两个路由:一个用于获取所有的todo项,一个用于添加新的todo项。我们使用一个简单的数组todos
来存储所有的todo项。
启动服务器:在命令行中执行以下命令来启动Express服务器:
node server.js
如果一切正常,你将会在命令行中看到
Server is running on port XXXX
的提示,表示服务器已成功启动。
三、前端搭建
创建React应用:回到项目文件夹,在命令行中执行以下命令来创建一个新的React应用:
npx create-react-app client
这将会在项目文件夹下创建一个名为
client
的新文件夹,用来存放我们的React前端应用代码。- 编辑React组件:打开刚刚创建的
client/src/App.js
文件,将其中的代码替换为以下内容:
import React, { useState, useEffect } from "react"; function App() { const [todos, setTodos] = useState([]); const [newTodo, setNewTodo] = useState(""); useEffect(() => { fetch("/api/todos") .then(res => res.json()) .then(data => setTodos(data)); }, []); const handleInputChange = e => { setNewTodo(e.target.value); }; const handleSubmit = e => { e.preventDefault(); const todo = { todo: newTodo }; fetch("/api/todos", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(todo) }) .then(res => res.json()) .then(data => setTodos(data)) .catch(err => console.log(err)); setNewTodo(""); }; return (); } export default App;Todo List
{todos.map((todo, index) => (
- {todo}
))}
这段代码定义了一个React函数组件App
,它用来展示todo列表。组件中使用了useState
和useEffect
两个React的Hook来处理组件的状态和副作用。我们通过fetch
函数来发送HTTP请求和获取数据。
启动React应用:在项目文件夹下打开命令行,进入
client
文件夹,并执行以下命令来启动React开发服务器:npm start
如果一切正常,你将会在浏览器中看到一个简单的TodoList应用,你可以添加新的todo项。
结束语:
通过本文的步骤,我们成功地结合使用React和Express搭建了一个简单的全栈JavaScript应用。你可以根据自己的需求进一步扩展应用的功能,比如添加编辑和删除功能,或者使用数据库来存储数据。全栈开发能够让我们同时充分发挥前后端技术的优势,提高开发效率,希望本文对你有所帮助。
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
177 收藏
-
359 收藏
-
103 收藏
-
173 收藏
-
328 收藏
-
368 收藏
-
263 收藏
-
186 收藏
-
267 收藏
-
211 收藏
-
276 收藏
-
490 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习