mongodb 为什么mongoose连接在端口侦听后执行

wn9m85ua  于 2022-12-22  发布在  Go
关注(0)|答案(1)|浏览(95)

如果我在监听端口之前连接mongoose,监听端口的控制台会先出现,然后执行连接控制台语句,为什么?
因为我想知道,为什么会这样?

zdwk9cvp

zdwk9cvp1#

您还应该将您的代码添加到问题中,以便其他人可以检查错误。
不过,无论如何我都会试着回答,Mongoose连接是异步的,所以你需要等待它完成,也就是说,你应该在收到成功连接到数据库之后构建你的服务器。
如果你之前的代码是这样的:

mongoose.connect(config.db);

const server = app.listen(config.port, () => {
  console.log(`Server is listening on port ${server.address().port}`);
});

您应该像这样重构它:

mongoose.connect(config.db).then(() => {

  // Wait for MongoDB connection first, and then build the server
  const server = app.listen(config.port, () => {
    console.log(`Server is listening on port ${server.address().port}`);
  });

});

相关问题