javascript - 通过 POST 将 Angular 变量传递到 Express 后端

标签 javascript angularjs node.js express

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/

相关文章:

javascript - 在 Directive 中的 ngRepeat 中将属性动态应用到 DOM 元素

javascript - 无法将值传递回 HTML 页面

javascript - 如何使用播放器在 html 中嵌入 flv 或 swf?

javascript - 使用 JavaScript 函数作为网页的起点

javascript - 如何使用 angularJs 打开本地目录?

javascript - Angular - 动态增加 ng-model 名称

javascript - AngularJS ng-messages 在表单甚至触及 Bootstrap 表单之前就显示错误

javascript - 防止 Vue.js 在慢速客户端上显示括号

node.js - promise nodejs + postgresql 中的错误句柄

linux - Nodemon + 永远不检测文件更改