如何停止执行一个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.');

}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...