这肯定是用户错误,但我已经尽可能减少了示例,但我就是找不到它。
这里我做了一个简单的查询,它调用回调并返回结果并且没有错误。然而,程序随后就挂起了;它永远不会退出。
import mongoose from "mongoose";
const someSchema = new mongoose.Schema({
name: String
});
const M = mongoose.model("someSchema", someSchema);
mongoose.connect("mongodb://localhost", err => {
console.error("connection error", err);
M.find({}, (queryError, result) => console.log("result:", result, "error:", queryError));
});
结果:
connection error undefined
result: [ { _id: 55ffada74fb9958d13ec7c4b, name: 'asdf', __v: 0 } ] error: null
(程序挂起而不是退出)
我确信我忽略了一些非常基本的东西,但我在指南中找不到它,而且杂耍也没有帮助。真正奇怪的是,我有一堆更复杂的 Mongoose 模型正在其他地方工作。
- Mongoose :^4.0.5
- 巴别塔节点:5.8.20
最佳答案
您的程序将保持打开状态,直到您关闭 MongoDB 连接(但是,这并不意味着它“挂起”)。完成后只需输入 mongoose.disconnect();
,脚本就会退出。
mongoose.connect("mongodb://localhost", err => {
console.error("connection error", err); // TODO better handle error
M.find({}, (queryError, result) => {
console.log("result:", result, "error:", queryError);
mongoose.disconnect();
});
});
关于javascript - Mongoose 查询在回调后挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689429/