2016-10-04 99 views
0

我在nodejs中编写脚本,它将收集mongodb中的一些事务,将其发布到API并且应该完成(并返回到cli)。我有这样的事情:nodejs始终运行

var request = require('request'); 
var mongoose = require('mongoose'); 
var Transaction = require('./models/transaction'); 
var send_it = function (transaction) { 
    request(URL, {token: transaction.token}, function (err, response,  body) { 
     console.info('Processed'); 
    }); 
}; 
var process_transactions = function (err, transactions) { 
    for (var i = 0; i < transactions.length; i++) { 
     send_it(transactions[i]); 
    } 
}; 

mongoose.connect('mongodb://localhost/forsocios'); 
Transaction.find({captured: false}, process_transactions); 

问题是:即使没有更多的事务发布,这个脚本仍会一直运行。这是为什么?当没有更多的事务要处理时,我该如何让它死掉(process.exit(0))?

+0

完成后,调用'mongoose.disconnect()'。 – robertklep

回答

0

最好的想法是学习承诺和异步/等待。