簡體   English   中英

Node.js服務器:從POST請求獲取正文

[英]Node.js server: get body from POST request

我已經用node.js和express.js創建了一個服務器,但是如果我發送POST請求並嘗試檢查正文,它總是說正文為空。 這是我的代碼:

app.js:

var express = require('express');

var app = express();

app.set('port', process.env.PORT || 61000);

require('./routes/routes.js')(app);

var server = app.listen(app.get('port'), function () {

    var port = server.address().port;

    console.log('Server runs on port %s', port);

});

route / routes.js:

module.exports = function(app) {        

     app.get('/', function(req, res) { 
          res.status(200).json({"response": "Hello!"});    
     });     

     app.post('/', function (req, res) {

         if (req.body != null) {
             res.status(200).json("Success");
         }

         res.status(200).json("Error");
     });
};

如果我現在在www.hurl.it上發出POST請求,並添加帶有“ Test”之類的文本,它會給我響應“ Error”,但它應該給我響應“ Success”,因為該正文不是空值。

如果我將“ body-parser”模塊添加到我的應用中,如下所示:

var bodyParser = require('body-parser');
...
app.use(bodyParser.json());

即使我讓身體空着,它也會給我“成功”。 如果返回req.body,則響應為:{};如果添加一個body,則也為{}

有人知道怎么了嗎?

我認為它總是會遇到錯誤情況。 嘗試這個:

if (req.body != null) {
  res.status(200).json("Success");
} else {
  res.status(200).json("Error");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM