这一定是我不理解的事情。
我有一个名为Album的Backbone模型:
var Album = Backbone.Model.extend({
idAttribute: "_id",
urlRoot: "http://localhost:8000/albums",
defaults:{
"_id": null,
"title": "",
"year": "",
"genre": ""
}
});
我有一个Node.js服务器,我使用Restify:
var server = restify.createServer();
server.put('/albums/:id', putAlbum); //putAlbum is a function defined above.
server.use(restify.bodyParser({ mapParams: false }));
我的问题是,当我保存现有的相册模型时(以及当我从集合中发布带有create方法的新模型时),服务器会收到请求并调用正确的函数,但是当我这样做时:
console.log(req.body);
身体'未定义'。我总是试图检查params属性,但它只有id。这是我错误配置的东西吗?
答案 0 :(得分:4)
在调用路由处理程序之前,重新排序代码以解析主体:
var server = restify.createServer();
server.use(restify.bodyParser({ mapParams: false }));
server.put('/albums/:id', putAlbum);