微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何停止执行一个node.js脚本?

我有这个脚本:

var thisIsTrue = false;

exports.test = function(request,response){

    if(thisIsTrue){
        response.send('All is good!');
    }else{
        response.send('ERROR! ERROR!');
        // Stop script execution here.
    }

    console.log('I do not want this to happen if there is an error.');

}

如你所见,我想停止脚本执行任何下游功能,如果有一个错误.

我设法通过添加return来实现这一点;错误响应发送后:

var thisIsTrue = false;

exports.test = function(request,response){

    if(thisIsTrue){
        response.send('All is good!');
    }else{
        response.send('ERROR! ERROR!');
        return;
    }

    console.log('I do not want this to happen if there is an error.');

}

但是,“正确”的做事方式呢?

备择方案

我也看过使用process.exit()的例子;和process.exit(1);但是给我一个502错误网关错误(我认为是因为它杀死了节点?).

和callback();它只是给了我一个’未定义’的错误.

在任何给定点停止node.js脚本的“正确”方法是什么,并阻止任何下游函数执行?

解决方法

使用返回是停止执行功能的正确方法.你在这个进程中是正确的.exit()会杀死整个节点进程,而不是停止这个单独的功能.即使您使用回调函数,也希望返回它来停止函数执行.

ASIDE:标准回调是第一个参数是错误函数,如果没有错误,则返回null,因此如果使用回调函数,则上述内容将如下所示:

var thisIsTrue = false;

exports.test = function(request,response,cb){

    if (thisIsTrue) {
        response.send('All is good!');
        cb(null,response)
    } else {
        response.send('ERROR! ERROR!');
        return cb("THIS ISN'T TRUE!");
    }

    console.log('I do not want this to happen. If there is an error.');

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐