1

これは私が正しく理解していないものでなければなりません。

Album という名前のバックボーン モデルがあります。

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 }));

私の問題は、既存の Album モデルを保存するとき (およびコレクションから 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 に答える