node.js中的Journey JSON

时间:2012-02-21 00:50:46

标签: javascript json node.js

我正在玩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"}': '' }

可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

看起来使用querystring.parse而不是JSON.parse来解析json。

确保您使用'application / json'正确发送'content-type'标头。