如何利用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 id="Todo-List">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應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。