如何利用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 ( <div> <h1>Todo List</h1> <form onSubmit={handleSubmit}> <input value={newTodo} onChange={handleInputChange} /> <button type="submit">Add Todo</button> </form> <ul> {todos.map((todo, index) => ( <li key={index}>{todo}</li> ))} </ul> </div> ); } export default App;
登錄后復制
這段代碼定義了一個React函數組件App
,它用來展示todo列表。組件中使用了useState
和useEffect
兩個React的Hook來處理組件的狀態和副作用。我們通過fetch
函數來發送HTTP請求和獲取數據。
啟動React應用:在項目文件夾下打開命令行,進入client
文件夾,并執行以下命令來啟動React開發服務器:
npm start
登錄后復制
如果一切正常,你將會在瀏覽器中看到一個簡單的TodoList應用,你可以添加新的todo項。
結束語:
通過本文的步驟,我們成功地結合使用React和Express搭建了一個簡單的全棧JavaScript應用。你可以根據自己的需求進一步擴展應用的功能,比如添加編輯和刪除功能,或者使用數據庫來存儲數據。全棧開發能夠讓我們同時充分發揮前后端技術的優勢,提高開發效率,希望本文對你有所幫助。
以上就是如何利用React和Express搭建全棧JavaScript應用的詳細內容,更多請關注www.92cms.cn其它相關文章!