簡體   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