gpt4 book ai didi

javascript - 返回 mysql 查询的结果。最终返回 undefined

转载 作者:太空宇宙 更新时间:2023-11-03 12:01:32 25 4
gpt4 key购买 nike

我有一个函数可以查询我的数据库并返回结果。但是无论我返回什么,它都是未定义的。

服务器代码:我在这里调用我的函数

var express = require('express');
var DBmodule = require('./db.js');
var router = express.Router();

router.get('/topics', function(req,res){
res.send(DBmodule.getTopics()); //Call to db.js - This returns undefined
});

db.js代码

var mysql = require('..\\node_modules\\mysql');

var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'password'
});

exports.getTopics = function(){
connection.connect();
connection.query('USE db');
var strQuery = "SELECT * FROM topics";

connection.query(strQuery, function(err, rows){
if(err){
throw err;
}else{
return rows;
}
});

connection.end();
};

让我感到困惑的是,如果我在 getTopics 函数中使用 console.log rowswhen,我会得到正确的结果。但是在服务器代码中,我得到的只是未定义的。

根据我的搜索,我认为它可能与回调有关,但我无法让它正常工作。有什么建议吗?

最佳答案

你不能在 async 函数中返回,只需将 rows 传递给回调:

exports.getTopics = function(cb) {
connection.connect();
connection.query('USE db');
var strQuery = "SELECT * FROM topics";

connection.query(strQuery, function(err, rows){
if (err) {
throw err;
} else {
cb(rows);
}
});

connection.end();
};

DBmodule.getTopics(function(rows){
console.log(rows);
});

关于javascript - 返回 mysql 查询的结果。最终返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28928736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com