Mongoose model.save() 挂起

Jak*_*son 2 mongoose mongodb node.js

我正在处理一个定义 Mongoose 模型的命令行节点脚本,然后使用该模型创建一个新文档,然后保存它。但该.save(function(){...});方法似乎并没有结束。它将文档保存在 Mongo 中,但脚本只是坐在那里并且没有完成。它永远不会返回到命令提示符:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydb');

var schema = new mongoose.Schema({
    name: String,
    street: String
});

var Location = mongoose.model('Location', schema);

var location = new Location({name: "Home", street: "Main Street"});

location.save(function(err){

    if (err) {
        throw new Error(err);
    }

    console.log(location);
});
Run Code Online (Sandbox Code Playgroud)

结果在终端是:

{ __v: 0,
  name: 'Home',
  street: 'Main Street',
  _id: 562b062d0ce456a912ee9559 }
Run Code Online (Sandbox Code Playgroud)

但随后终端就坐在那里。我必须按 CTRL+C 才能返回命令提示符。关于该.save()方法的某些内容似乎使脚本挂起...虽然该文档确实保存在数据库中。我在这里缺少什么?

cdb*_*rin 5

数据库连接仍然打开并监听事件。要结束脚本,您需要关闭它:

location.save(function(err){

    if (err) {
        throw new Error(err);
    }

    console.log(location);
    mongoose.connection.close();
});
Run Code Online (Sandbox Code Playgroud)