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

无法在express js节点中获取请求负载

公西俊德
2023-03-14

这是我的Node Express代码,

(function () {
    'use strict';
    var fs = require('fs');
    var cors = require('cors');
    var bodyParser = require('body-parser');
    var express = require('express'),
        app = express(),
        port = 8112;


    app.use(cors());
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    app.listen(port);


    app.route('/abc')
        .post(abc);


    function abc(req,res){
        console.dir(req.body);
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        res.sendStatus(200);
    }

})();

但我将请求正文作为

{}

但在我的网络选项卡在Chrome我可以看到请求有效负载。请注意选项在此POST调用之前被激发。

请求标头

POST/abchttp/1.1 host:localhost:8112连接:
保持活动内容-长度:11 pragma:no-cache cache-control:no-cache
来源:http://localhost:4200用户-代理:mozilla/5.0(Windows NT 10.0;win64;x64)applewebkit/537.36(KHTML,像Gecko)chrome/66.0.3359.181 safari/537.36
x-api-key:

请求有效载荷

{“dd”:“dd”}

共有1个答案

韦澄邈
2023-03-14

您需要发送:content-type:application/JSON才能使bodyparser.JSON()工作,如果没有它,您的JSON负载将不会被解析,这就是为什么您会得到:{}

从文档中:

bodyParser对象公开各种工厂以创建中间件。当Content-Type请求标头与type选项匹配时,所有中间件都将使用已分析的正文填充Req.body属性;如果没有要分析的正文、内容类型不匹配或发生错误,则使用空对象({})填充。

使用.fetch的示例:

fetch('http://localhost:4200/dashboard', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({dd: 'dd'})
});
 类似资料:
  • 我正在尝试在后端节点中发出http请求。js web app。我可以在前端web javascript文件上发出成功的完整http请求,如下所示: 并遵循本指南:https://nodejs.dev/learn/make-an-http-post-request-using-nodejs 我一直试图在node中发出相同的请求。js后端: 但运行上述请求会导致以下错误: 我设置url/path设置的

  • 我在循环中的节点JS中发送这样的GET请求 由于响应是异步的,是否可以在响应中获取原始请求URL? 谢谢!

  • 问题内容: 我有一个向我的Java Servlet发送POST请求的javascript库,但是在该方法中,我似乎无法获取请求有效内容。在chrome Developer Tools中,所有内容都位于标头标签的“请求有效负载”部分中,并且内容在那里,而且我知道doPost方法正在接收POST,但它只是空白。 对于 对象,我可以通过什么方式在请求有效负载中获取数据? 这样做 两者最终都没有数据 问题

  • 我用请求模块和异步模块的组合并行爬行了很多链接 我注意到很多和错误,尽管使用chrome可以访问链接并快速响应。 在请求选项中,我将限制为2,将限制为10000。我使用限制为2的来减少每次请求的并行性。所以我有2套接字,2个请求和10秒的超时时间来等待来自服务器的头响应,但我得到了这些错误。 在这里s我使用的请求配置: 以下是我用来生成链接的代码片段: 我听了错误事件,我看到每当错误代码为时,co

  • 我想将值从反应发送到节点。我正在使用fetch,但我没有得到。这是代码:反应代码: 节点代码: const express=要求(“express”) const cors=require('cors') 常量应用=快速() app.use(cors({源: '*' }) ) app.listen(8000,'localhost') 应用程序。post(“/”,(req,res)= }) 当我参观