我的所有项目都突然发生了这种情况.
每当我使用express和body-parser在nodejs中发帖时req.body都是一个空对象.
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded())
// parse application/json
app.use(bodyParser.json())
app.listen(2000);
app.post("/", function (req, res) {
console.log(req.body) // populated!
res.send(200, req.body);
});
Run Code Online (Sandbox Code Playgroud)
通过ajax和postman它总是空的.
但是通过卷曲
$ curl -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:2000/
Run Code Online (Sandbox Code Playgroud)
它按预期工作.
我尝试手动设置Content-type : application/json前者,但我总是得到400 bad request
这让我发疯了.
我认为这是在身体解析器中更新的东西,但我降级了,但没有帮助.
任何帮助表示感谢,谢谢.
我花了几个小时试图弄清楚为什么 req.body 是空的。我在 stackoverflow 上到处查看并尝试了所有方法,但没有运气。
我尝试设置:
app.use(bodyParser.urlencoded({extended: false})); //false
Run Code Online (Sandbox Code Playgroud)
但它没有改变任何东西
这是 app.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var index = require('./routes/index');
var ajax = require('./routes/ajax');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev')); …Run Code Online (Sandbox Code Playgroud)