req.body
始终为空。我不确定我做错了什么?我尝试将内容类型 header 添加为 json,但这也没有执行任何操作。有人可以引导我走向正确的方向吗?谢谢
编辑:只是为了澄清目的,我的 Angular 前端成功命中后端函数,但 req.body 为空。如果我理解正确的话,如果我使用“body-parser”库,它应该通过“req.body”通过 post 传递。但我只是没有看到这一点,而且我不确定为什么。
EDIT2:我的 app.js 中有主体解析器代码,但 index.js 文件中有后端路由,这有什么关系吗?
编辑3:app.js http://pastebin.com/9vNgf0Nd index.js http://pastebin.com/icLa3e2X
Angular 前端
service.registerAccount = function(account) {
console.log(account); //account = { userName: 'test', password: 'hello' }
return $http({
method: 'POST',
url: '/register',
data: { account: account },
headers: {'Content-Type': 'application/json'}
});
}
后端(app.js)
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
后端(index.js)
var express = require('express');
var router = express.Router();
router.post('/register', function(req, res) {
console.log(req.body);
};
最佳答案
请删除此行
app.use(bodyParser.urlencoded({ extended: true }))
另外,
app.use(bodyParser.json());
必须在app.use('/', paths);
之前调用
并确保将 Content-Type: application/json 添加到请求 header
关于javascript - 通过 POST 将 Angular 变量传递到 Express 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40514279/