You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rest Client请求卡住处于等待状态,Node.js接口无响应排查

问题原因与解决方案

你的请求一直处于等待状态,核心原因是没有结束Express的请求-响应周期。

虽然异步处理函数执行到了console.log,也返回了JSON字符串,但Express不会自动把异步函数的返回值作为响应发送给客户端——必须显式调用响应对象(res)的方法来完成响应发送。

修正后的代码

直接使用Express提供的响应方法返回内容(推荐写法):

module.exports = {  
  homepageHandler: async function (req, res) {
    console.log(`index page.`);
    // res.json会自动设置Content-Type为application/json,无需手动序列化
    res.json({
      "message": "welcome"
    });
  }
}

如果需要手动处理JSON字符串,也可以这样写:

module.exports = {  
  homepageHandler: async function (req, res) {
    console.log(`index page.`);
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify({
      "message": "welcome"
    }));
  }
}

为什么之前的方法无效?

Express支持异步路由处理函数(返回Promise),但它只会等待Promise完成,并不会把Promise的resolved值自动作为响应内容发送。哪怕你用Promise.resolve包裹返回值,也只是让Promise状态变为已完成,但请求-响应周期依然没有被终止,客户端会一直等待服务端发送响应信号。

内容的提问来源于stack exchange,提问作者Manu Chadha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:09:54