web-dev-qa-db-ja.com

Express.jsでPUTメソッドを使用する

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できないのか、何が悪いのか理解できません。

15
Brandon

実際の更新機能が不足している可能性があります。結果をクライアントに返す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機能をカバーしているので、あなたの会社のために記事を交換するのに役立ちます。同じ同じ。

13
headwinds

コールバック関数(req、res)の順序を変更します。 function(res、req)を使用しないでください。

0
jet street

また、putまたはdeletegetアドレスに)にリダイレクトする場合、通常のres.redirect('/path')を使用することはできません。res.redirect(303, '/path')。 ( ソース

そうでない場合は、Cannot PUTエラー。

0
yaya