1

这一定是我不能正确理解的东西。

我有一个名为 Album 的 Backbone 模型:

var Album = Backbone.Model.extend({
idAttribute: "_id",
urlRoot: "http://localhost:8000/albums",
defaults:{
    "_id": null,
    "title": "",
    "year": "",
    "genre": ""
    }
});

我有一个使用 Restify 的 Node.js 服务器:

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 。是我配置错误吗?

4

1 回答 1

4

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

var server = restify.createServer();
server.use(restify.bodyParser({ mapParams: false }));
server.put('/albums/:id', putAlbum);
于 2012-12-22T19:32:37.820 回答