在角度方面,我使用post方法传递数据。
var data = {
'id': mydata.google_id,
'token': mydata.token,
'email': mydata.email,
'name': mydata.name
};
$http.post('http://localhost:3000/login1',data,config)
.success(function (data, status, headers, config) { ... })
.error(function (data, status, header, config) { ... });
在服务器端尝试访问我使用req.body.id
发布的数据,但我无法
当我在控制台中显示req.body
时,我获得了以下回复:
{ ' {"id" : "1234" , "email" : "xyz@gmail.com" , "name" : "xyz"}' : ' ' [_proto_] : { } }
帮我解决此错误
答案 0 :(得分:0)
正在使用哪个版本的快递? 尝试使用解析请求正文
app.use(bodyParser());
答案 1 :(得分:0)
在您的控制台日志中观察,对象属性名称似乎是字符串(请注意属性名称周围的双引号)。
您应该以这种方式设置对象:
var data = {
id: mydata.google_id,
token: mydata.token,
email: mydata.email,
name: mydata.name
};
在对象文字初始化中未引用属性名称(如果这不是您需要的:-)。
请参阅此链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer
希望这有帮助。
答案 2 :(得分:0)
您可能已启用bodyParser
但是,您需要使用以下内容启用bodyParser.json()
中间件:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var cors = require('cors');
app.use(cors());
// parse application/json
app.use(bodyParser.json());
app.post('/meow', function(req, res) {
console.dir(req.body);
res.send(req.body);
});
app.listen(8181);
这将允许您发布POST方式,但是,您可以直接访问req.body
属性(与原始字符串主体相比)。最终,Anuglar的$http.post()方法会将您的javascript data
对象转换为JSON,然后再将其发送到您的服务器。
var data = {
id: mydata.google_id,
token: mydata.token,
email: mydata.email,
name: mydata.name
};
var config = {
headers: {}
};
$http.post('http://localhost:8181/meow', data, config);