我试图设置的电子邮件服务的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库文档中有充分的记录。