我有一个具有对象的 post api,但我无法在控制台中打印它抛出的 undefined 我以为我缺少 body-parser 但在添加 body parser 之后我看到错误 body-parser deprecated bodyParser: use individual json/urlencoded middlewares
任何帮助将不胜感激。
路由.js
var express = require('express');
var bodyParser = require('body-parser');
var Diagram = require('./api/diagram/diagram.controller');
var router = express.Router();
router.post('/saveUpdateDiagram',bodyParser,function(req,res){
console.log(req.body);
});
应用程序.js
var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
var router = express.Router();
var route = require('./server/routes').router;
var mongoose = require('mongoose');
mongoose.connection.on('connected', function() {
console.log('MongoDB connected ');
});
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', route);
app.use(bodyParser.urlencoded({
extended: false
}))
app.use(bodyParser.json())
app.listen(8760, function() {
console.log('I am listening 8760...');
});
最佳答案
您在 app.js 中使用 body-parser 没问题。它是中间件,并加载了 app.use,因此它将应用于每个传入请求。
你可以在 routes.js 中删除它,这样它看起来像这样:`
var express = require('express');
var Diagram = require('./api/diagram/diagram.controller');
var router = express.Router();
router.post('/saveUpdateDiagram', function(req,res){
console.log(req.body);
});
` 另外,尝试替换:
app.use(bodyParser.urlencoded({
extended: false
}))
与:
app.use(bodyParser.urlencoded({extended: true}));
关于javascript - 如何在 Express 路由器中使用 body-parser?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39985486/