【问题标题】:Nodejs class return undefinedNodejs 类返回未定义
【发布时间】: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

标签: node.js database


【解决方案1】:

我是 Node js 开发人员,我正在使用 mongodb。我认为一切都很好。 3个可能的问题

1 首先检查 xampp 是否正在运行 2 是否与数据库建立连接 3 表名

【讨论】:

  • 问题是关于 MySQL 而不是 MongoDB。
  • 我知道,但首先检查您的连接是否已建立。您与数据库的连接。和控制台只结果不是结果[0]。
  • 当然连接已建立,OP 表示结果已记录到控制台。以及为什么 Node.js 用于服务器时会有 XAMPP?
  • 因为你使用的是mysql作为数据库。
  • 虽然 XAMPP 确实带有 MySQL,但在这种情况下,似乎没有对 XAMPP 的依赖,因为 MySQL 可以在没有 XAMPP 的情况下安装在您的系统上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
相关资源
最近更新 更多