我的項目目錄看起來是這樣的:快遞 - 電話再次要求對多條航線
MyProject
-app.js
-routes
-routeone
-routetwo
裏面我app.js文件,它看起來像這樣:
var express = require('express');
var app = express();
var routeone = require('./routes/routeone');
var routetwo = require('./routes/routetwo');
app.use('/routeone', routeone);
app.use('/routetwo', routetwo);
.
.
.
每個路由文件看起來像這樣:
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({
extended: false
});
router.post('/', urlencodedParser, function(req, res, next) {
if (!req.body.param) {
//no parameter was provided
} else {
//there was a parameter provided
}
});
module.exports = router;
正如你所看到的,我對bodyparser模塊有依賴性。我需要在每個路由中調用此模塊,併爲此指定選項。將來可能會有更多路由。我想避免在每一個路徑文件中指定這個,因爲說我需要在將來更改extended:true
,我將不得不去每個文件並改變它。我寧願在一個地方有這個。我試圖將其添加到app.js文件,但urlencodedParser不能在路徑文件中找到。我也認爲這有一個性能問題,因爲每條路線都需要加載這個模塊。
當您嘗試在app.js中添加正文解析器時,您是如何做到的?你得到了什麼錯誤? – QoP
你可以只在一個地方放置body-parser中間件,而不是放在每個路由器上? – jfriend00