运行node.js脚本后返回bash
我有一个node.js脚本,它使用mongoose执行许多异步操作。我的问题是,当它完成时,我的终端将不会返回到调用脚本的bash提示符 这是我的一些代码: "严格使用", //将默认节点环境设置为“开发” process.env.NODE_env=process.env.NODE|env | |“开发”运行node.js脚本后返回bash,node.js,bash,mongoose,Node.js,Bash,Mongoose,我有一个node.js脚本,它使用mongoose执行许多异步操作。我的问题是,当它完成时,我的终端将不会返回到调用脚本的bash提示符 这是我的一些代码: "严格使用", //将默认节点环境设置为“开发” process.env.NODE_env=process.env.NODE|env | |“开发” ... // Connect to database mongoose.connect(config.mongo.uri, config.mongo.options); var sendY
...
// Connect to database
mongoose.connect(config.mongo.uri, config.mongo.options);
var sendYouHaveNewEmail = function (invoice, to_user) {
var data = {
from: 'asfd@asfd.adsf',
to: to_user.email,
subject: 'You have new Stuff',
html: jade.renderFile(__dirname + '/../' + 'mytemplate.jade')
})
};
mailer.send(data, function (error) {
if (error) {
console.log("An error occurred sending a email to", to_user.email);
}
});
};
Schedule.find({name: 'myname'}).exec()
.then(function (results) {
var ids = _.map(results, function (schedule) {
return schedule.person_id;
});
Person.find({_id: {$in: ids}}).exec()
.then(function (persons) {
if (persons.length == 0) return;
_.forEach(persons, function (person) {
Profile.findOne({user_id: person._id}).exec()
.then(function (profile) {
...
console.log("I'm done");
})
.end(function (err) {
console.log("An error occurred ", err)
});
});
})
.end(function (err) {
console.log("An error occurred ", err);
});
})
.end(function (err) {
console.log("An error occurred retrieving Schedule list", err);
});
为什么会这样?这是错误的吗?节点将保持运行,只要预期将进一步的事件添加到事件循环中。最好的猜测是,在查询完成后,与Mongo的连接没有关闭。但是,您必须至少共享一些代码,以便我们提供适当的帮助。@JonathanLonowski我刚刚添加了一些示例代码,我的实际代码没有错误。相关: