回调

时间:2015-09-21 07:19:09

标签: javascript mongoose

这一定是用户错误,但我尽可能地减少了这个例子,而我却无法发现它。

这里我做了一个简单的查询,它使用结果调用回调而没有错误。然而,该计划后来挂起;它永远不会退出。

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模型。

  • 猫鼬:^ 4.0.5
  • babel-node:5.8.20

1 个答案:

答案 0 :(得分:1)

您的程序将保持打开状态,直到您关闭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();
    });
});