这是我的前端。
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”变量?
最佳答案
Node 以 block 的形式处理 POST 数据。您的函数需要接收数据 block 并构建一个完整的主体。有一些框架(例如 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
对象也是一个 Event Emitter 。因此,每当接收到 block
传入数据时,req
就会发出一个'data'
事件;当没有更多传入数据时,将发出 'end'
事件。因此,在我们的例子中,我们监听 'data'
事件。收到所有数据后,我们将数据记录到控制台。
使用 Express,您还应该有一个额外的对象 req.params
.
req.params
An object containing properties mapped to the named route “parameters”. For example, if you have the route
/user/:name
, then the “name” property is available asreq.params.name
. This object defaults to{}
.
您还可以使用req.body
在 Express 中间件的帮助下:
req.body
Contains key-value pairs of data submitted in the request body. By default, it is
undefined
, and is populated when you use body-parsing middleware such as body-parser and multer.
关于javascript - 如何从 Node 后端的 $http.post/angular 检索 post 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786671/