Javascript 如何从节点后端的$http.post/angular检索post变量?

Javascript 如何从节点后端的$http.post/angular检索post变量?,javascript,angularjs,node.js,post,parameters,Javascript,Angularjs,Node.js,Post,Parameters,这是我的前端 auth var time = 5; $http.post('/tasks/addTime', null, { headers: { Authorization: "Bearer " + auth.getToken() }, data: { id: "Me", time: time, } }); 这是后面 router.post('/tasks/addTime', auth, function(re

这是我的前端

auth
var time = 5;

$http.post('/tasks/addTime', null, {
    headers: {
        Authorization: "Bearer " + auth.getToken()
    },
    data: {
        id: "Me",
        time: time,
    }
});
这是后面

router.post('/tasks/addTime', auth, function(req, res, next) {
    console.log(req);
});

我能够看到数据结构req被回显,因此我正确地调用后端。。如何访问我的“id”和“time”变量?

节点以块的形式处理POST数据。您的函数需要接收数据块并构建完整的正文。有些框架(如Express)可以为您处理此问题,但下面是一个如何自己处理此问题的示例:

router.post('/tasks/addTime', auth, function(req, res, next) {
  var body = "";
  req.on('data', function (chunk) {
    body += chunk;
  });
  req.on('end', function () {
    console.log('POSTed: ' + body);
  });
});
在侦听POST数据时,请务必注意,
req
对象也是一个<因此,只要接收到传入数据的
,code>req将发出
'data'
事件;当没有更多传入数据时,将发出
'end'
事件。因此,在我们的例子中,我们监听
“数据”
事件。接收到所有数据后,我们将数据记录到控制台

使用Express时,还应该有一个额外的对象

请求参数

包含映射到命名管线“参数”的特性的对象。例如,如果您有路由
/user/:name
,则“name”属性可用作
req.params.name
。此对象默认为
{}

您还可以在Express中间件的帮助下使用:

请求正文

包含请求正文中提交的数据的键值对。默认情况下,它是
未定义的
,并且在使用主体解析中间件(如和)时填充


它们不在
req
对象中吗?我尝试回显req。。有很多东西。具体地说,我尝试了req.body,但它是空的。想象一下,这已经成功地做了很多次了,但这对谷歌来说是一件困难的事情。谢谢你的回复。我的朋友说这段代码给了他一些问题,所以我今晚会看一看,试着让这段代码发挥作用,看看他是否遗漏了什么。如果我能让我们的设置使用这种方法,我会给你一个正确的答案。如果你有时间,你能给我们一个express框架的例子来做这种事情吗?我们使用的是express,因此可能需要谨慎地进行检查。