Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs/Express无法一致地从post检索正文。多个呼叫快速连续成功_Node.js_Express - Fatal编程技术网

Node.js Nodejs/Express无法一致地从post检索正文。多个呼叫快速连续成功

Node.js Nodejs/Express无法一致地从post检索正文。多个呼叫快速连续成功,node.js,express,Node.js,Express,我正在创建一个简单的模拟服务器,我想(现在)用请求的主体来响应帖子。我遇到一个问题,无法始终检索该请求的正文 它有时确实有效,但前提是我能快速发布多篇帖子。如果我在两次发布之间延迟超过5秒,则正文似乎是{} 我怎样才能确保我总能找回尸体?我感谢你提供的任何帮助!我是node的新手,所以我确信存在一些明显的错误 我使用Postman发送请求,并为“contenttype”设置了一个值为“application/json”的头 在定义应用程序之后,但在使用路由之前,我正在使用bodyParser.j

我正在创建一个简单的模拟服务器,我想(现在)用请求的主体来响应帖子。我遇到一个问题,无法始终检索该请求的正文

它有时确实有效,但前提是我能快速发布多篇帖子。如果我在两次发布之间延迟超过5秒,则正文似乎是{}

我怎样才能确保我总能找回尸体?我感谢你提供的任何帮助!我是node的新手,所以我确信存在一些明显的错误

  • 我使用Postman发送请求,并为“contenttype”设置了一个值为“application/json”的头
  • 在定义应用程序之后,但在使用路由之前,我正在使用bodyParser.json()
  • 加入中间件和侦听:

    app=express();
    use(bodyParser.json());
    var router=require('./router.js');
    应用程序使用(路由器);
    httpServer=http.createServer(app);
    httpServer.listen(webServerConfig.port)
    .on('listing',()=>{
    log(`Web服务器在本地主机上侦听:${webServerConfig.port}`);
    
    路由器的相关部分:

    router.route('/api/v1/customer')
      .post(customers.post);
    
    路由器调用的Post函数:

    function post(req, res, next) {
      try {
        var body = req.body;
        console.log('post: ', body);
        res.status(200).json(req.body);
        next();
      } catch (err) {
        res.status(500);
        next(err);
      }
    }
    
    第一个响应的主体(或在响应之间等待5秒):

    后续响应的主体,当快速连续做出时(这也是我在post请求中发送的主体):


    我看不出你的代码有任何问题,可能是你的客户端代码有问题,请你也发布它们好吗?只需几条注释,在调用
    res.send
    后,你不必调用
    next
    。此外,你也可以将其称为short
    res.json(req.body)
    ,您不需要指定200status@ShimonBrandsdorfer我正在使用独立的Postman客户端发布请求。请求的“正文”与我收到的响应(当它工作时)相同。我选择了“原始”和“JSON(应用程序/JSON)”'作为类型。我已确认标头包含键'Content type'和值'application/json'。我已尝试使用curl重现该问题,但始终收到{}.好的,所以我试着在我的机器上运行你的代码,它一直运行。可能你的计算机的其他部分出了问题code@ShimonBrandsdorfer谢谢你的帮助!我至少可以排除这一部分,这非常有用。再次感谢!我看不出你的代码有任何错误,可能是你的客户端代码有问题,请你也把它们贴出来好吗?只要几张便条,在你调用
    res.send
    之后,你不必再调用
    next
    。此外,你也可以把它叫做short
    res.json(req.body)
    ,您不需要指定200status@ShimonBrandsdorfer我正在使用独立的Postman客户端发布请求。请求的“正文”与我收到的响应(当它工作时)相同。我选择了“原始”和“JSON(应用程序/JSON)”'作为类型。我已确认标头包含键'Content type'和值'application/json'。我已尝试使用curl重现该问题,但始终收到{}.好的,所以我试着在我的机器上运行你的代码,它一直运行。可能你的计算机的其他部分出了问题code@ShimonBrandsdorfer谢谢你的帮助!我至少可以排除这一部分,这非常有用。再次感谢!
    {}
    
    {
        "phone": "8124713403",
        "smsOptStatus": "out",
        "addressLine1": "100 Regolith Lane",
        "birthDay": 2,
        "firstName": "Bill",
        "emailAddress": "test3sldkfjslkdfa@live.com",
        "lastName": "Shepherd",
        "emailOptStatus": "in",
        "city": "Mooncity",
        "loyaltyStatus": "member",
        "birthMonth": 7,
        "state": "CA"
    }