簡體   English   中英

ReferenceError:nodejs 中未定義連接

[英]ReferenceError: connection is not defined in nodejs

兩個 .js 文件都在同一個文件夾中。 我正在嘗試運行該應用程序,但我收到該連接未在 user.js 中定義。 在連接上調用查詢的那一行,它說它沒有定義。

索引.js

var exports = module.exports = {};

var user = require('./user');

exports.User = user;
exports.startCon = startCon;

var mysql = require('mysql2');

function startCon() {
    return mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'users'
    })
}

用戶.js

var dal = require('./index');

function User(){
    this.connection = null;
}

User.prototype.getAll = function(cb){
      this.connection = dal.startCon();

      connection.query('SELECT * FROM user;', function (error, data) {
        if(!error){
                cb(null, data);
        }
        else {
                console.log("Error Selecting : %s ", error );
                cb(error);
        }
    });

    connection.end();
}

module.exports = User;

嘗試在回調函數中關閉連接

callback() {
    connection.close()
}

這個模塊真的很奇怪

您需要在函數內部構造連接實例

var mysql = require('mysql');

let doSmth = function(userId) {

    let connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : '',
        database : 'test'
    });
        return new Promise((resolve, reject) => {

        connection.query({
                sql: 'SELECT `address` FROM `User` WHERE `user_id` = ?'
            },
            [userId],
            function (error, results, fields) {
                console.log(error, results)
                if(!error) {
                    var obj = JSON.parse(JSON.stringify(results));
                    resolve(obj)
                } else {
                    reject(error)
                }
            }
        );
    })
}
module.exports = {
    doSmth
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM