【问题标题】:Express server routes not being hit. Browser Error 'No Data Received ERR_EMPTY_RESPONSE'Express 服务器路由未命中。浏览器错误“未收到数据 ERR_EMPTY_RESPONSE”
【发布时间】:2020-11-02 13:58:51
【问题描述】:

我在尝试设置电子邮件服务时遇到了我的快递服务器问题。排除故障后,我决定将其归结并尝试使用一个简单的“hello world”示例来查看问题是否会复制,它确实做到了。无论是由 js 前端、邮递员完成还是仅在 chrome 浏览器中完成,每个请求都不会正常工作。每个请求都会“旋转”,直到它返回“未收到数据 ERR_EMPTY_RESPONSE”错误。

我尝试重新安装 express 依赖项,重新安装节点本身,不同的浏览器。代码已附上,任何帮助将不胜感激。

const express = require('express');
const cors = require('cors');

const app = express();

let port = 3000;

app.use(cors);

app.get('/testroute', (req, res) => {
    console.log('route hit');
    res.send('test success');
});

app.listen(port, () => {
    console.log('server started on port: ' + port);
});

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    改变这个:

    app.use(cors);
    

    到这里:

    app.use(cors());
    

    您的服务器挂起,因为您将 cors 作为中间件传递。但是,cors 本身并不是中间件。当 Express 调用它时,它从未发送响应或调用next() 以继续路由,因此客户端只是永远挂起等待响应。取而代之的是,cors 库被设计成您可以像在 cors() 中那样调用它,以取回您然后传递给 Express 的中间件函数。

    这在 cors 库 documentation 中有完整记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2022-01-15
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2015-10-24
      • 1970-01-01
      相关资源
      最近更新 更多