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秒。
1条答案
按热度按时间kkih6yb81#
我以前遇到过这个问题,用这个工艺方法解决了
mongoose。连接。关闭(函数(){进程。退出();});