【发布时间】:2022-01-10 08:53:03
【问题描述】:
我有一个这样的nodejs代码
const mysql = require('mysql');
const express = require('express');
const app = express();
class ConnectDatabase{
constructor(){
this.connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'mydatabase'
});
};
getVersion() {
this.connection.query('SELECT * FROM version', function (err, results) {
return results[0].version // if use console.log() i get my data
});
};
};
var APP = new ConnectDatabase()
console.log(APP.getVersion());
当我使用 console.log(results[0].version) 时,我得到了我的数据,但是当我使用 return 时,我的数据变得未定义
【问题讨论】:
-
也许您可以在
getVersion中定义一个变量,例如var ret;,然后将results[0].version的值分配给它,例如ret = results[0].version; -
您的
.getVersion是异步的,您可以像处理它的同步一样处理它。使用回调或承诺,简短快速的解释:stackoverflow.com/a/20635030/5781499