Nodejs 类返回未定义

Posted

技术标签:

【中文标题】Nodejs 类返回未定义【英文标题】:Nodejs class return undefined 【发布时间】: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 是异步的,您可以像处理它的同步一样处理它。使用回调或承诺,简短快速的解释:***.com/a/20635030/5781499 【参考方案1】:

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

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

【讨论】:

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

以上是关于Nodejs 类返回未定义的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS:返回未定义的数据类型

JQuery Post到NodeJS返回MySQL值给出未定义?

Nodejs API调用将未定义返回给lambda函数

要求函数的返回数据变为未定义(Js,NodeJs,Discord.js)[重复]

Nodejs:catch块中的回调函数在try-catch中返回未定义的参数

异步函数总是返回未定义