1

我在笔记本电脑的不同端口上的 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 调用,但我不知道在哪里看

4

0 回答 0