Mongoose model.save()挂起

我正在定义一个Mongoose模型的命令行节点脚本,然后使用该模型创build一个新文档,然后保存它。 但.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); }); 

结果是在terminal是:

 { __v: 0, name: 'Home', street: 'Main Street', _id: 562b062d0ce456a912ee9559 } 

但terminal只是坐在那里。 我必须按CTRL + C才能返回到命令提示符。 关于.save()方法的东西似乎使脚本挂起…虽然文档不会保存在数据库中。 我在这里错过了什么?

数据库连接仍处于打开状态,正在侦听事件。 对于脚本结束,您需要closures它:

 location.save(function(err){ if (err) { throw new Error(err); } console.log(location); mongoose.connection.close(); });