我在笔记本电脑的不同端口上的 localhost 上运行了两个不同的快速服务器。其中一个正在向另一个提出请求。
我正在尝试使用 chai-http 测试服务器 A,但是从服务器 A 到服务器 B 的后续请求导致Error: connect ECONNREFUSED 127.0.0.1:3020
.
服务器 A 对服务器 B 的请求:
try {
await axios({
method: 'post',
url: `${process.env.userapi}/invite`,
data: { user: { email } },
headers: { 'Content-Type': 'application/json' }
});
} catch (e) {
console.error(e);
throw e;
}
}
服务器 B // 引导路由 require('./config/passport')(passport); 要求('./config/express')(应用程序,护照);要求('./config/routes')(应用程序,护照);
mongoose.connection.on('error', connect);
mongoose.connection.on('disconnected', connect);
mongoose.connection.once('open', listen);
function listen() {
// if (app.get('env') === 'test') return;
if (!module.parent) app.listen(port);
console.log('Express app started on port ' + port);
}
...
app.post('/invite', invitationCtrl);
服务器 B 配置
res.header('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Credentials', true);
res.setHeader(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept, Authorization, appid'
);
res.setHeader(
'Access-Control-Allow-Methods',
'GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS'
);
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
next();
}
使用邮递员而不是 chai 进行测试时,该/invite
路线似乎有效。我怀疑 axios 调用,但我不知道在哪里看