ReferenceError:在nodejs中未定义err

时间:2020-05-04 03:20:50

标签: javascript node.js express

为什么 ReferenceError:未定义err ,为什么?

const sampleObject = require('./sampleObject');

const sampleModel = (callback) => {
    if (true) {
        sampleObject.sampleRetrieval(err, data => {
            if (err) {
                callback(err)
            } else {
                callback(data)
            }
        })

    } else {
        console.log('Something went wrong.');
    }
}

module.exports = sampleModel;

这是执行查询并将其传递给sampleModel的文件。

const myDB = require('../db/database');
module.exports = {
    sampleRetrieval: () => {
        let sql = "SELECT * FROM ACCOUNTS";
        myDB.query(sql, (err, data) => {
            if (err) {
                callback(null, err)

            } else {
                callback(err, data)
            }
        })
    }
}

1 个答案:

答案 0 :(得分:0)

问题是您的函数 sampleRetrieval 没有收到回调函数作为参数。应该是这样的:

sampleRetrieval: (callback) => {
    let sql = "SELECT * FROM ACCOUNTS";
    myDB.query(sql, (err, data) => {
        if(err) {
            callback(null, err);
        } else {
            callback(err, data);
        }
    })
}

然后像Dan O的评论中那样修正括号:

const sampleModel = (callback) => {
    if (true) {
        sampleObject.sampleRetrieval((err, data) => {
            if (err) {
                callback(err)
            } else {
                callback(data)
            }
        })
    } else {
        console.log('Something went wrong.');
    }
}

希望有帮助!