簡體   English   中英

NodeJS,快速 - 路由

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM