我的express服务器出现问题,我正在尝试设置电子邮件服务。在排除故障后,我决定总结一下,并尝试使用一个简单的“hello world”示例来查看问题是否会重现,它确实做到了。任何路由都不会正确工作每个请求,无论是由js前端、邮递员完成的,还是只在chrome浏览器中完成的都可以。每个请求都会“旋转”,直到它返回一个“No Data Received 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);
});
发布于 2020-11-02 05:58:51
更改此设置:
app.use(cors);
要这样做:
app.use(cors());
您的服务器挂起是因为您将cors
作为中间件进行传递。但是,cors
本身并不是中间件。当Express调用它时,它从未发送响应或调用next()
来继续路由,因此客户端只能挂起,永远等待响应。相反,Express库的设计目的是让您像在cors()
中一样调用它,以获取一个中间件函数,然后将该函数传递给cors
。
这在cors库documentation中有完整的文档。
https://stackoverflow.com/questions/64640422
复制