当前位置: 首页 > 知识库问答 >
问题:

快递员req.body是空的

暨鹭洋
2023-03-14

我知道这已经被问了很多次了,但是我一直在四处寻找,仍然找不到我的问题的答案。

这是我的代码,我确保在定义路由之前使用并配置body解析器。我只是在用。带bodyParser的json(),因为现在我只测试了一个POST函数,但我甚至尝试了应用程序。使用(bodyParser.urlencoded({extended:true}));

var express = require('express'),
    bodyParser = require('body-parser'),
    app = express();

app.use(bodyParser.json());
app.set('port', (process.env.PORT || 5000));

app.listen(app.get('port'), function() {
    console.log("Node app is running at localhost:" + app.get('port'))
});

app.post('/itemSearch', function(req, res) {
    //var Keywords = req.body.Keywords;
    console.log("Yoooooo");
    console.log(req.headers);
    console.log(req.body);
    res.status(200).send("yay");
});

这是我收到的答复

Node app is running at localhost:5000
Yoooooo
{ host: 'localhost:5000',
  connection: 'keep-alive',
  'content-length': '146',
  'cache-control': 'no-cache',
  origin: 'chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop',
  'content-type': 'multipart/form-data; boundary=----WebKitFormBoundarynJtRFnukjOQDaHgU',
  'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
  'postman-token': '984b101b-7780-5d6e-5a24-ad2c89b492fc',
  accept: '*/*',
  'accept-encoding': 'gzip, deflate',
  'accept-language': 'en-GB,en-US;q=0.8,en;q=0.6' }
{}

在这一点上,我真的非常感谢任何帮助。谢谢

共有2个答案

於乐
2023-03-14

试试这个

 // create application/json parser
    app.use(bodyParser.json());
    // parse various different custom JSON types as JSON
    app.use(bodyParser.json({ type: 'application/*+json' }));
    // parse some custom thing into a Buffer
    app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }));
    // parse an HTML body into a string
    app.use(bodyParser.text({ type: 'text/html' }));
    // parse an text body into a string
    app.use(bodyParser.text({ type: 'text/plain' }));
    // create application/x-www-form-urlencoded parser
    app.use(bodyParser.urlencoded({ extended: false }));
东方琪
2023-03-14

AFAIK您需要使用Body解析器:https://github.com/expressjs/body-parser

bodyParser = require('body-parser').json();
app.post('/itemSearch', bodyParser, function(req, res) {
  //var Keywords = req.body.Keywords;
  console.log("Yoooooo");
  console.log(req.headers);
  console.log(req.body);
  res.status(200).send("yay");
});

然后尝试使用PostMan将正文设置为rajson:

{
  "test": "yay"
}
 类似资料:
  • 问题内容: 突然,这已经发生在我所有的项目中。 每当我使用express和body-parser在nodejs中发帖时,它都是一个空对象。 通过ajax和邮递员,它总是空的。 但是通过卷曲 它按预期工作。 我尝试在前者中手动设置,但随后我总是得到 这让我发疯。 我以为是人体分析器中有一些更新,但是我降级了,但没有帮助。 任何帮助表示赞赏,谢谢。 问题答案: 在可用于内容类型的3个选项的邮递员中,选

  • 问题内容: 这是我的问题,我有一个表单,可以在其中插入文件和字段,但仅接收文件而不接收参数!为什么? 这是我的代码: app.js: index.html: 有人可以帮我吗? 问题答案: 2017更新 从自述文件 请注意,req.body可能尚未完全填充。这取决于客户端将字段和文件传输到服务器的顺序。 我通过反转前端的表单对象属性的顺序解决了我的问题: 在后端:

  • 由于某种原因,multer上的文件过滤器没有被调用。 这是我的控制器(我使用的是快速路由器) 这是控制器 我有以下问题: 甚至没有调用fileFilter函数,因此它不会验证文件 上载函数(upload:function(req,res))上的req.body为空它仅在磁盘存储和上一个上载函数(upload(req,res,function(err))中可用,因此我也无法验证body数据。

  • 错误: 我试图通过这个留档https://www.npmjs.com/package/multer来处理MulterError,但遇到了一个问题。 控制台.log(req.body)给出 { },而表单 enctype 等于“多部分/表单数据”。如果我将其更改为“应用程序/ x-www-表单-网址编码”,则req.body是正常的,但文件不会上传到服务器。 穆特用法 从保修页面使用表单enctyp

  • 问题内容: 我有以下表格,提交后结果为空这是我的HTML: 这是我的(一部分): 该工作正常。我得到一个空对象。 问题答案: 您以HTML POST的身份提交,这意味着您正在使用。 这意味着您需要添加,这样express可以解析该请求并将其放入

  • 我有一个带有简单表单的ejs模板,只有一个值: 在我的app.js我试图调用console.log(req.body),但它返回空 "{}". 这是我的app.js代码: 在其他问题上,很多人说他们会使用这款应用。使用(bodyParser.urlencoded({extended:false}));但一切都没有改变。我试过了。json()也是,但似乎没有什么变化。顺便说一句,我试过了。记录(请求