Node script never ends

I have a node script below to basically copy the contents of some files and paste them into mongo.

The script never ends, and although all the data is inserted successfully, I always need to do Ctrl + C to kill it.

Is there something I should use in node.js to complete the script?

var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/testdb'); var dir = './seeds'; var db = mongoose.connection; // Show connection error if there is one db.on('error', console.error.bind(console, 'Database Connection Error:')); // If we successfully connected to mongo db.once('open', function callback() { var fs = require('fs'); // Used to get all the files in a directory // Read all the files in the folder fs.readdir(dir, function(err, list) { // Log the error if something went wrong if(err) { console.log('Error: '+err); } // For every file in the list list.forEach(function(file) { // Set the filename without the extension to the variable collection_name var collection_name = file.split(".")[0]; var parsedJSON = require(dir + '/' + file); for(var i = 0; i < parsedJSON.length; i++) { // Counts the number of records in the collection db.collection('cohort').count(function(err, count) { if(err) { console.log(err); } }); db.collection(collection_name).insert(parsedJSON[i], function(err, records) { if(err) { console.log(err); } console.log(records[0]); console.log("Record added as "+records[0]); }); } }); }); }); 
+6
source share
2 answers

When done, call mongoose.disconnect() . As @AaronDufour correctly points out, node will not exit because event handler callbacks are logged because it does not know that more events were expected, for example, for example, a connection coming from a close event or an error.

+7
source

you can call process.exit(); to exit

+4
source

All Articles