【发布时间】:2013-07-22 14:52:06
【问题描述】:
这是我的带有 JSON 响应的模型:
exports.getUser = function(req, res, callback) {
User.find(req.body, function (err, data) {
if (err) {
res.json(err.errors);
} else {
res.json(data);
}
});
};
我在这里通过http.request 得到它。为什么我收到(数据)的是字符串而不是 JSON?
var options = {
hostname: '127.0.0.1'
,port: app.get('port')
,path: '/users'
,method: 'GET'
,headers: { 'Content-Type': 'application/json' }
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log(data); // I can't parse it because, it's a string. why?
});
});
reqA.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
reqA.end();
如何获取 JSON?
【问题讨论】:
-
JSON 是一个序列化。如果它在字符串中,则它只是 JSON,或者尚未解析为 JavaScript。你在找
JSON.parse()吗? -
就是这样。谢谢马特
-
我认为
data事件每次都被多次调用,参数是字符串数据的一部分。在该事件中返回的data是否很可能是损坏的 JSON,因为它只是整个文档的一小部分?我认为您需要缓冲数据,然后在您的end事件中使用JSON.parse()。 -
你是对的,它是分块发送的,所以最好的方法是创建一个 Buffer 数组并将其推送到那里
-
看到 Sasha Grey 提出的 nodejs 问题....:D
标签: json node.js api httprequest