猫鼬查询在回调后挂起

Mongoose query hangs after callback

本文关键字:挂起 回调 查询      更新时间:2023-09-26

这一定是用户错误,但我已经尽可能地减少了这个例子,我就是找不到它。

这里我做了一个简单的查询,它调用回调函数并得到一个结果,没有错误。然而,程序只是挂起之后;它永远不会退出。

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模型在其他地方工作。

  • 猫鼬:^你
  • babel-node: 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();
    });
});