Backbone - 未定义的请求体

时间:2012-12-22 19:28:27

标签: javascript node.js backbone.js restify

这一定是我不理解的事情。

我有一个名为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。这是我错误配置的东西吗?

1 个答案:

答案 0 :(得分:4)

在调用路由处理程序之前,重新排序代码以解析主体:

var server = restify.createServer();
server.use(restify.bodyParser({ mapParams: false }));
server.put('/albums/:id', putAlbum);