运行node.js脚本后返回bash

时间:2015-01-15 15:39:37

标签: node.js bash mongoose

我有一个node.js脚本,它使用mongoose执行许多异步操作。我的问题是,当它完成后,我的终端将不会返回调用脚本的bash提示符。

这是我的一些代码:

'use strict';

//将默认节点环境设置为开发 process.env.NODE_ENV = process.env.NODE_ENV || '发展';

...

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

为什么会这样?这是错的吗?

0 个答案:

没有答案