在每个文件中快速设置 app.use 中间件?
Express set app.use middleware in every file?
我创建了一个非常基本的 express js 应用程序。在设置路线和我做的其他事情之后 app.use('/api/', require('./api/api.js'));
api.js 看起来像这样:
var express = require('express');
var router = express.Router();
router.post('/', function(req, res){
res.end(req.body);
});
module.exports = router;
我在这条路线上使用 Postman chrome 到 post 的扩展。响应为空 {}
。
问题是:只要我在我的 app.js
body-parser
中间件集中设置了我是否需要在 api.js
中再次设置它?如果不是,为什么我的回复是空的?
在app.js
中,body-parser是这样设置的:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
试试这个
app.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
var api = require('./api');
app.use('/api', api);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
api.js
var express = require('express');
var router = express.Router();
router.post('/', function (req, res) {
res.send((req.body);
});
module.exports = router
然后,在您的 PostMan 请求中,类似于:
您在 app.use('/api/', require('./api/api.js'));
中使用了 /api/
来使用路线,并且在路线中使用了 router.post('/', ...
。如果您删除 /api/
中的尾部正斜杠,它可能会起作用。
我创建了一个非常基本的 express js 应用程序。在设置路线和我做的其他事情之后 app.use('/api/', require('./api/api.js'));
api.js 看起来像这样:
var express = require('express');
var router = express.Router();
router.post('/', function(req, res){
res.end(req.body);
});
module.exports = router;
我在这条路线上使用 Postman chrome 到 post 的扩展。响应为空 {}
。
问题是:只要我在我的 app.js
body-parser
中间件集中设置了我是否需要在 api.js
中再次设置它?如果不是,为什么我的回复是空的?
在app.js
中,body-parser是这样设置的:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
试试这个
app.js
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
var api = require('./api');
app.use('/api', api);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
api.js
var express = require('express');
var router = express.Router();
router.post('/', function (req, res) {
res.send((req.body);
});
module.exports = router
然后,在您的 PostMan 请求中,类似于:
您在 app.use('/api/', require('./api/api.js'));
中使用了 /api/
来使用路线,并且在路线中使用了 router.post('/', ...
。如果您删除 /api/
中的尾部正斜杠,它可能会起作用。