有没有办法在发出node.js server.listen事件之前启动任务?

时间:2015-08-03 05:40:21

标签: express server

我希望能够在服务器开始侦听端口并获取请求之前启动异步任务, 我的解决方法是从onListening函数调用我的任务,当我的任务完成后,我将端口绑定到地址 - 但是这种解决方法很难看..

    function onListening() {
        var addr = server.address();
        var bind;
// Following service gets the default plugins from the yamls and stores them in the DB.
        defaultOperationsService.getOOTBOperations().then(function success() {
            logger.info('Done getting default plugins operations!');

        }, function err(err) {
            logger.error('Error while trying to get operations' + err);

        }).done(function done() {
            bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port;
            logger.debug('Listening on ' + bind);
        });
    }

1 个答案:

答案 0 :(得分:4)

我介绍了一种更好的方式,可能是最好的方法,完成后调用server.listen(port):

 defaultOperationsService.getOOTBOperations().then(function success(){
    logger.info('Done getting default plugins operations!');

}, function err(err){
    logger.error('Error while trying to get operations' + err);

}).done(function done(){
    server.listen(port);
});