23

Express.js アプリに更新機能を実装しようとしています。PUT 要求を使用して新しいデータを送信したいのですが、PUT を使用するとエラーが発生し続けます。私が読んだすべてから、それは app.put を使用するだけの問題ですが、それは機能していません。ルートファイルには次のものがあります。

send = function(req, res) { 
    req.send(res.locals.content);
};

app.put('/api/:company', function(res,req) {
    res.send('this is an update');
}, send);

postman を使用して PUT リクエストを行うと、「cannot PUT /api/petshop」というエラーが表示されます。なぜ PUT できないのか、何が問題なのかわかりません。

4

4 に答える 4

21

実際の更新機能が不足している可能性があります。結果をクライアントに返す put パスがありますが、データベースにデータを更新するように指示すると、その部分が欠落しています。

mongodb と Express を使用している場合は、次のように記述できます。

app.put('/api/:company', function (req, res) {
    var company = req.company;

    company = _.extend(company, req.body);

    company.save(function(err) {
    if (err) {
        return res.send('/company', {
            errors: err.errors,
            company: company
        });
    } else {
        res.jsonp(company);
    }

}); 

このミーン スタック プロジェクトは、ここで使用したばかりの CRUD 機能をカバーしているので、あなたの会社の記事を交換するのに役立つかもしれません。同じ同じ。

于 2014-01-28T01:26:49.630 に答える
-6

ヘッダー情報をチェックしていますか? ヘッダーはheader['content-type'] = 'application/json';サーバー側(node-express)でのみ更新オブジェクトを取得する必要があるため、それ以外の場合はempty req.body、ノードアプリで取得するようなプレーンな「text/htm」のコンテンツタイプがある場合。

于 2016-12-19T07:19:15.053 に答える