【问题标题】:Postman not receiving response to NodeJS Express Post request邮递员没有收到对 NodeJS Express Post 请求的响应
【发布时间】:2022-02-16 17:22:01
【问题描述】:

这是 NodeJscode 的相关部分:

app.post("/makeSentenceParamsPost", express.json(), (request, response) => {
  const object    = request.body.object;
  const adjective = request.body.adjective;
    
  console.log('<br>POST requestuest received: object = ' + object + '; adjective = ' + adjective >'<br>>');

  let sentence = softwareUnderTest.MakeAsentence(object, adjective);
  sentence = JSON.stringify(sentence);
  response.set( sentence );
})

这是一个截图,断点在倒数第二行,在调用softwareUnderTest.MakeAsentence之后:

所以,请求到达了我的代码,MakeAsentence 做了它应该做的事情。

这是一个截图,断点在最后一行,response.set

当我继续,或者在没有断点的情况下运行时,Postman 永远不会收到响应 :-(

我正在 Visual Studio Code 中运行 Nodejs Express 服务器。我做错了什么?

【问题讨论】:

  • 你没有错误吗?
  • 没什么。事实上,如果我确实在我的代码中引入了错误,那么 Postman 会立即得到响应。也许我需要为邮递员设置更多标题以接受响应?
  • 不应该是.send吗?
  • 我们赢了!!是的,它应该(我是个白痴)。随意张贴作为答案

标签: node.js express visual-studio-code post postman


【解决方案1】:

当我阅读您的图片时,我发现您实际上并没有发送回复。

// Set the response type eg. HTML or JSON
res.set('Content-Type', 'text/html');
res.send(JSON.stringify(sentence));

另外,请不要在您的问题中添加图片,因为在小型设备上很难阅读,而且我们无法复制您的代码进行测试...

这是我的一个 API 的一些代码,也许有帮助。

// I use "express": "^4.17.2"
router.get('/', (req, res) => {
    res.status(200).json({
        status: "success",
        timestamp: Date.now(),
    });
});

【讨论】:

  • 谢谢(和赞成)。我不知道在响应中设置内容类型(不应该是text/json?无论如何,都没有给我响应。但是,如果我在代码中输入错误,我会立即得到响应。也许我需要邮递员可以接受更多标题吗?为图片道歉。它们似乎是展示事物的最快方式,无需发布整个代码。我以后将避免使用图片。再次感谢您的帮助
  • 您的应用程序是否显示console.log()?我将添加一些我的 API 之一的示例代码。也许你可以使用它。
  • 是的,我看到了控制台日志。 GET 请求也不起作用 :-( 哦,等等,当我使用你的代码时它会起作用。我会调整我的并在它起作用时发布它。再次感谢 :-)
  • 试试这个回复:res.status(200).json(sentence);
  • 那行得通。正如上面评论中所指出的,我打电话给set 而不是send。哦!!
猜你喜欢
  • 1970-01-01
  • 2019-03-18
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 2020-09-17
  • 2019-06-09
  • 1970-01-01
相关资源
最近更新 更多