[英]NodeJS, express - routing
我用“expressjs”設置了一個小的 NodeJS API。 在我的代碼中,我有一些類似的代碼塊,如下所示:
app.get('/api/my/path', (req, res) => {
doSomethingUseful();
});
所有這些請求都做了不同的事情,所以被調用的函數也總是不同的。
我問自己這是否是用 NodeJS 編寫代碼的好習慣。 如果有更好/更清晰的方式來編寫所有這些路徑,如果您能告訴我如何或至少給我一個尋找它的地方,我將不勝感激。
編輯 1:明確一點:我問將大量“app.get(...)”寫入一個源代碼文件是否是個好主意,或者是否有更好的方法?
是的,有一種比將所有路由寫入一個文件更好的方法。 例如,假設您有用戶和問題的路線。 對於用戶,您希望獲取/設置/放置/刪除配置文件,以及類似的問題。因此您創建以下文件夾結構: /api/users
和/api/questions
在/api/users
中,
const express=require('express')
const router=express.Router()
//this handles route: /users
router.get('/',(req,res)=>{})
//this handles route: /users/profile
router.get('/profile',(req,res){})
//this is to retrieve profile of specific user by user id :/users/profile/:userID
router.get('/profile/:userId',(req,res))
router.post('/profile',(req,res))
.
.
然后,在您的 index.js 或項目的入口點中,
const users=require('./api/users')
const questions=require('./api/questions')
app=require('express')
app.use('/users',users)
app.use('/questions',questions)
所以實際上,你說對於任何/users
路由,請參考 users.js 文件,對於任何/questions
路由,請參考 questions.js 文件等等
嘗試路線魔術
您只想執行 2 行代碼並讓模塊讀取您的目錄和文件結構來處理所有app.use
路由調用,如下所示:
const magic = require('express-routemagic')
magic.use(app, __dirname, '[your route directory]')
對於那些你想手動處理的,只是不要使用將目錄傳遞給 Magic。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.