Node.js服务器:从POST请求中获取正文

Node.js server: get body from POST request

本文关键字:请求 获取 正文 POST js 服务器 Node      更新时间:2023-09-26

我已经用node.js和express.js创建了一个服务器,但是如果我发送POST请求并尝试检查body,它总是说body是空的。下面是我的代码:

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

路线/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"这样的文本,它会给我响应"错误",但它应该给我响应"成功",因为主体不是空的。

如果我像这样在我的应用程序中添加"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");
}