目前我玩铁:路由器的解决方案为一个宁静的API。为此,我使用了.put
,.get
...方法,这些方法是铁路的:路由器已实现。
这是我合作的例子:
Router.route('/api', {where:'server'})
.put(function(){
var req;
req = this.request;
console.log(req.body);
this.response.end('PUT finished.');
});
当我执行以下操作时,我将得到预期的响应(PUT完成):
curl -XPUT "http://localhost:4000/api " -d'{"name": "timo"}'
但是console.log(req.body)
返回一个转换为对象的奇怪值。
返回值为:
{
'{"name": "timo"}\n' : ''
}
看起来铁:路由器尝试将主体转换为对象,但没有认识到给定的请求字符串是有效的JSON字符串。
我做错了吗?我没有找到任何有用的准备铁:路由器,给定的请求体仍然是JSON。
也许它是一个更好的解决方案,不告诉铁:路由器,给定的请求是一个JSON,而不是告诉铁:路由器它不应该做任何事情所以我可以自己转换JSON字符串?
答案 0 :(得分:1)
您没有在curl请求中指定内容类型。试试这个:
curl -XPUT "http://localhost:4000/api " -d'{"name": "timo"}' -H "content-type: application/json"
这对我有用:
I20150522-09:59:08.527(-7)? Request { name: 'timo' }
(没有它没有)。