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(); });