2017-06-10 15 views
2

私は表現してノードを新しくしていて、単純な問題であると思われます。 GETを使用するAPIルートがあります。ルート:続いてGETルート(express.js)でPOSTリクエストを処理する

app.get('/api/v1/all', getAllWords); 

getAllWordsコールバック関数の内部で、私が送信された要求がGETまたはPOSTであったかどうかを確認します。

function getAllWords(request, response) { 
    let reply; 
    if (request.method === 'GET') { 
     console.log('This was a GET request'); 
     // handle GET here... 
    } 
    if (request.method === 'POST') { 
     console.log('This was a POST request'); 
     reply = { 
      "msg": "HTTP Method not allowed" 
     }; 
     response.send(reply) 
    } 
} 

私はそれだけで正常に動作GET要求をオフに送信するために郵便配達を使用します。これは私がリクエストメソッドをチェックする必要がコードです。しかし、POSTリクエストを送信すると、私はgeneric express.js "POST/api/v1/all"を取得できません。

Postman screenshot

なぜそれがresponse.send(reply)POST方法のために動作しませんでしたか?

+0

_ "POSTメソッドではなぜresponse.send(reply)が機能しませんでしたか?" 'Can not POST/api/v1/all'は知っておく必要があることをすべて伝えます。このルート上でPOSTリクエストを処理するようにアプリケーションを設定していないので、単純に_doesn't_しません。 – CBroe

答えて

1

app.get(...) GETメソッドと一致するエンドポイントを定義します。あなたはPOSTメソッドを処理したい場合は、あなたがapp.all(...)の使用は両方GETPOST要求を処理するために作ることができますが、それはまた、PUTDELETEなどの要求の他の種類を受け入れapp.post(...)

0

に別々のミドルウェアを提供する必要があります。私はGETPOST要求を分離することを好む。

関連する問題