在Node.js自定义模块中获取res对象

时间:2018-09-27 07:16:16

标签: node.js

我正在生成一个帮助程序自定义模块,该模块应该返回 res.status(422).json(objError)。但是,如何获得res对象? 我尝试在该模块中使用Express库,但没有任何变化。

nodejs定制模块

function Validation(result){
    if(result.error){
        //422 Validation Error
        var objError = [];    
        Object.keys(result.error.details).forEach(function(key) {
            objError.push(result.error.details[key]['message']);
        });
        return res.status(422).json(objError);
    }
}

module.exports.JV = Validation

2 个答案:

答案 0 :(得分:1)

您需要将响应对象传递给函数。

function validateAndResponse(result, res){
    if(result.error){
        //422 Validation Error
        var objError = [];    
        Object.keys(result.error.details).forEach(function(key) {
            objError.push(result.error.details[key]['message']);
        });
        return res.status(422).json(objError);
    }
}

然后调用为:validateAndResponse(result,res);

理想情况下,不应在函数中执行此操作以保持函数的SingleResponsiblity。

答案 1 :(得分:0)

您可以在方法中将res作为参数发送

logging.exception(division by zero)
there was a divide by 0 error when I called exampleFunction()

}

这应该有效