mongoose.connection.close()或mongoose.disconnect()在连接实际关闭之前需要大约10-12秒

r8uurelv  于 2023-02-23  发布在  Go
关注(0)|答案(1)|浏览(208)
const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/fruitsDB", {
  useNewUrlParser: true
});

const fruitSchema = new mongoose.Schema({
  name: String,
  rating: Number,
  review: String
});
const Fruit = mongoose.model("Fruit", fruitSchema);

const fruit = new Fruit({
  name: "Apple",
  rating: 7,
  review: "Good Fruit"
});
fruit.save();

const banana = new Fruit({
  name: "banana",
  rating: 9,
  review: "Noice"
});

const mango = new Fruit({
  name: "Mango",
  rating: 10,
  review: "best Fruit"
});

Fruit.insertMany([banana, mango], function (err) {
  if (err) console.log(err);
  else console.log("Inserted all!");
});

Fruit.find(function (err, fruits) {
  if (err) console.log(err);
  else {
    mongoose.connection.close();
    fruits.forEach((fruitdata) => {
      console.log(fruitdata.name);
    });
  }
});

mongoose.connection.close()需要10-12秒的时间才能真正关闭连接。我也尝试过mongoose.disconnect(),但问题仍然存在。使用async函数和await键也没有什么区别。我不知道哪里出错了。但根据我对以下代码片段的理解,错误处理需要时间。

Fruit.find(function (err, fruits) {
  if (err) console.log(err);
  else {
    mongoose.connection.close();
    fruits.forEach((fruitdata) => {
      console.log(fruitdata.name);
    });
  }
});

如果我只是把mongoose.connection.close()或mongoose.disconnect()放在这个代码段的上面,那么连接会在毫秒内关闭,但是如果放在.find的回调函数中,则需要10-12秒。

kkih6yb8

kkih6yb81#

我以前遇到过这个问题,用这个工艺方法解决了
mongoose。连接。关闭(函数(){进程。退出();});

相关问题