Nodejs结果和错误处理 - ' TypeError:回调不是函数

时间:2018-05-11 22:35:16

标签: node.js error-handling method-call

我正在编写一个返回结果或错误的方法。

myMethod.methodName = (param1, param2, param3, error, callback) => {
    try {
        myDB.findOne({ param1: value}, function (err, result) {
            if (err) {
                throw(err);
            }
            if (result) {              
              callback(result);
        });

    } catch (e) {
        error(e);
    }
};

通过调用函数,我将其调用如下:

myExport.data.methodName(param1, param2, param3, (err, result) => {
        if (err) {
            console.log("Result error:", err);
        }
        if (result) {
            console.log('result : ', result);
        }
    });

这里我遇到一个错误:' TypeError:回调不是函数

如何实现返回错误或结果的方法调用以及如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

methodName()需要5个参数,第5个是回调。在调用方法时,您将回调作为第4个参数传递,因此在methodName()内部回调实际上是null。因此错误。

您的来电者是正确的。像这样改变你的方法定义:

myMethod.methodName = (param1, param2, param3, callback) => {
    try {
        myDB.findOne({ param1: value}, function (err, result) {
            if (err) {
                return callback(err);
            }
            return callback(null, result);
            //rest of the code as-is
            ...