我正在玩Journey on节点,我只是意识到路由器正在将JSON请求对象解释为具有空值的键的值:
换句话说,当我向服务器发布一个JSON对象时,我得到以下内容:
http://127.0.0.1:3000/> post /events
... {url : "test"}
HTTP/1.1 200 OK
Date: Tue, 21 Feb 2012 00:42:38 GMT
Server: journey/0.4.0
Content-Type: application/json;charset=utf-8
Content-Length: 67
Connection: keep-alive
{
event: {
_id: '10tPxx',
resource: 'Event',
{url : "test"}: ''
}
}
如您所见,整个对象被视为字符串。
这是我的旅程相关代码:
exports.createRouter = function(resource){
var router = new (journey.Router)({
api: 'basic'
});
router.path(/\/events/, function(){
....
this.post().bind(function(res, event){
console.log(event);
resource.create(event, function(err, result){
if(err){
return res.send(500, {}, {error: err.error});
}
res.send(200, {}, { event: result});
});
});
...
});
return router;
};
控制台的打印输出为:
{ '{url : "test"}': '' }
可能出现什么问题?
答案 0 :(得分:0)
看起来使用querystring.parse而不是JSON.parse来解析json。
确保您使用'application / json'正确发送'content-type'标头。