未命中快速服务器路由。浏览器错误"ERR_EMPTY_RESPONSE未收到数据"



我试图设置的电子邮件服务的express服务器出现问题。在排除故障后,我决定把它归结为一个简单的"你好世界"示例,看看这个问题是否会复制,它确实做到了。无论是由js前端、邮递员还是仅在chrome浏览器中完成,每个请求都不会有正确的路由。每个请求只会"旋转",直到返回"未接收到数据ERR_EMPTY_REPONSE"错误。

我试过重新安装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);
});

更改此项:

app.use(cors);

到此:

app.use(cors());

您的服务器挂起,因为您正在将cors作为中间件传递。但是,cors本身并不是中间件。当Express调用它时,它从未发送响应,也从未调用next()来继续路由,因此客户端一直在等待响应。相反,cors库被设计为您在cors()中调用它,以获取一个中间件函数,然后将其传递给Express。

这在cors库文档中有充分的记录。

最新更新