繁体   English   中英

ReferenceError: err 未在 nodejs 中定义

[英]ReferenceError: err is not defined in nodejs

为什么ReferenceError: err is not defined即使它在此处定义?

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)
            }
        })
    }
}

错误:未定义错误

newUser.save()
.then( ()=> res.json('User added!'))
.catch( err => res.status(400).json('Error: '+ err));

固定的

newUser.save()
    .then( ()=> res.json('User added!'))
    .catch( (err) => res.status(400).json('Error: '+ err));

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

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.');
    }
}

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM