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,因此可能需要谨慎地进行检查。