簡體   English   中英

為什么在Node.js Express中未定義變量

[英]Why Variable is undefined in nodejs express

我正在使用node js express並從控制器中調用模型。當我調用模型表單控制器並在result變量中獲取結果並將其打印在console.log(result)它是undefined

控制者

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

exports.get_user = function(req, res) {

    var result = user_model.get_users();

    console.log(result);
}

模型

var connection=require('../config/connection');

exports.get_users = function() {

    connection.query('SELECT * FROM users', function(err, rows) {
        if(err) {
            retrun err;
        }
        return rows;
    });
}

使用Promise處理異步調用

// **Controller** 
var user_model = require('../models/user');

exports.get_user = function (req, res) {

    user_model.get_users().then((result) => {
        console.log(result);
    }).catch(err => console.log(err));
}

// **Model** 
var connection = require('../config/connection');
exports.get_users = function () {
    return new Promise((resolve, reject) => {
            connection.query('SELECT * FROM users', function (err, rows) {
                if (err) {
                    reject(err);
                }
                resolve(rows);
            });
        }
    })
}

之所以發生這種情況,是因為您要在查詢完成之前合並結果。 節點是異步的。 與php節點不同的是,在轉到下一行之前,不必等待查詢完成。

暫無
暫無

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

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