2016-10-04 123 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

最好的想法是學習承諾和異步/等待。