本指南將幫助您學習如何建立結構清晰的 Node.js REST API。包含資料夾組織、最佳實務以及建立可擴充、易維護 API 的技巧。
API 是現代 Web 應用程式的基石,連接前端和伺服器。然而,結構不良的 API 會導致程式碼混亂且難以維護。對於剛接觸 Node.js 的初學者來說,從一開始就理解如何組織專案對於建立可擴展、簡潔的應用程式至關重要。
本指南將引導您了解 Node.js REST API 的基本架構。我們將涵蓋基本要素、最佳實踐,並提供一個實用的資料夾結構,您可以將其應用到您的專案中。 閱讀更多關於資料夾結構的資訊
在開始時,許多開發人員將所有內容放入一個文件中。雖然這對於小型專案有效,但隨著程式碼庫的成長,它會變成一場噩夢。良好的 API 結構有助於:
在深入探討資料夾結構之前,讓我們先了解一些基本原則:
這是一個適用於小型專案的簡單結構,非常適合絕對初學者:
<code>my-api/ ├── server.js # 入口点 ├── package.json # 项目元数据和依赖项 ├── .env # 环境变量 ├── /routes # API 路由定义 │ └── userRoutes.js # 示例:用户相关的路由 ├── /controllers # 请求处理逻辑 │ └── userController.js ├── /models # 数据库模型或模式 │ └── userModel.js └── /config # 配置文件 └── db.js # 数据库连接设置</code>
應用程式的入口點:
<code>my-api/ ├── server.js # 入口点 ├── package.json # 项目元数据和依赖项 ├── .env # 环境变量 ├── /routes # API 路由定义 │ └── userRoutes.js # 示例:用户相关的路由 ├── /controllers # 请求处理逻辑 │ └── userController.js ├── /models # 数据库模型或模式 │ └── userModel.js └── /config # 配置文件 └── db.js # 数据库连接设置</code>
使用 .env 檔案儲存敏感資料:
<code class="language-javascript">require('dotenv').config(); const express = require('express'); const userRoutes = require('./routes/userRoutes'); const connectDB = require('./config/db'); const app = express(); const PORT = process.env.PORT || 5000; // 中间件 app.use(express.json()); // 数据库连接 connectDB(); // 路由 app.use('/api/users', userRoutes); app.listen(PORT, () => console.log(`服务器运行在端口 ${PORT}`));</code>
安裝 dotenv 將這些變數載入 process.env 中:
<code>PORT=5000 MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/myDatabase</code>
路由處理 HTTP 請求並將它們指向對應的控制器。
/routes/userRoutes.js:
<code class="language-bash">npm install dotenv</code>
控制器包含處理請求的邏輯。
/controllers/userController.js:
<code class="language-javascript">const express = require('express'); const { getAllUsers, createUser } = require('../controllers/userController'); const router = express.Router(); // 获取所有用户 router.get('/', getAllUsers); // POST 创建新用户 router.post('/', createUser); module.exports = router;</code>
模型定義資料庫文件的結構。在這個範例中,我們使用 MongoDB 和 Mongoose。
/models/userModel.js:
<code class="language-javascript">const User = require('../models/userModel'); // 获取所有用户 const getAllUsers = async (req, res) => { try { const users = await User.find(); res.status(200).json(users); } catch (error) { res.status(500).json({ message: error.message }); } }; // POST 创建新用户 const createUser = async (req, res) => { try { const { name, email } = req.body; const newUser = await User.create({ name, email }); res.status(201).json(newUser); } catch (error) { res.status(500).json({ message: error.message }); } }; module.exports = { getAllUsers, createUser };</code>
設定資料夾包含連接到外部資源(例如資料庫)的檔案。
/config/db.js:
<code class="language-javascript">const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true } }); module.exports = mongoose.model('User', userSchema);</code>
以下是一些練習的思路:
從乾淨、結構化的 API 開始是可維護項目的基礎。透過分離關注點和邏輯地組織程式碼,您將為應用程式的成長做好準備。
請記住,這只是一個起點!隨著您經驗的成長,您可以調整和擴展此結構以適應更大、更複雜的專案。
您是否有任何具體的挑戰或想法想讓我們在未來的文章中探討?請在評論中告訴我們!
感謝您抽空閱讀這篇文章!我希望它能幫助您簡化主題並提供有價值的見解。如果您覺得它有用,請關注我以獲取更多關於 Web 開發和其他技術主題的易於理解的內容。
您的回饋很重要!請在評論區分享您的想法——無論是建議、問題,還是您希望我改進的方面。隨意使用表情符號讓我知道這篇文章帶給您了什麼感受。 ?
我很樂意與您聯繫!讓我們繼續交流想法,互相學習,一起成長。
在社群媒體上關注我,讓我們保持聯繫:
期待收到您的來信,並壯大這個充滿好奇心的人群社區! ?
以上是Node.js 中建立 API 的初學者指南:簡潔且可擴展的詳細內容。更多資訊請關注PHP中文網其他相關文章!