Node.js脚本未退出

Node.js script does not Exit

本文关键字:退出 脚本 js Node      更新时间:2023-09-26

为什么下面的代码在运行了所有3行之后没有导致node退出进程?

var monq = require('monq')
var client = monq('mongodb://remote.db.com:27017/mydB')
var queue = client.queue('users')

如果第三行没有执行,脚本将退出。

必须等待异步操作(处理队列)完成,然后调用process.exit()来结束脚本的执行。见:https://nodejs.org/api/process.html process_process_exit_code

似乎到Mongo的底层连接直到调用client.queue('users')才建立起来。monq有一个client.close()方法来关闭它的db连接。你可以用几个mod测试一下。

    var monq = require('monq')
    var client = monq('mongodb://localhost:27017/mydB')
    var queue;
    setTimeout(function() {
        // create the queue which establishes the connections
        queue = client.queue('users');
        setTimeout(function() {
            // close connection
            client.close();
        }, 5000)
    }, 5000);