Javascript 从mysql查询返回“results”参数时未定义

Javascript 从mysql查询返回“results”参数时未定义,javascript,node.js,Javascript,Node.js,试图使用Node.js和Express从MySQL数据库向EJS发送数据,但返回'results'参数时显示错误: function dbData(){ connection.query('SELECT * FROM clients', (err, results, fields)=>{ return results; }); } 路线: 当转到localhost:3000时,控制台显示: 问题是,当我记录结果时: connection.query('SE

试图使用Node.js和Express从MySQL数据库向EJS发送数据,但返回'results'参数时显示错误:

function dbData(){
    connection.query('SELECT * FROM clients', (err, results, fields)=>{
        return results;
    });
}
路线:

当转到localhost:3000时,控制台显示:

问题是,当我记录结果时:

connection.query('SELECT * FROM clientes', (err, results, fields)=>{
        console.log(results);
        return results;
    });
控制台显示:

那么,如果我返回“results”数组,为什么数据等于“undefined”?我怎样才能解决这个问题


我是Node.js的新手,如果这太明显的话,很抱歉:

乍一看,实现MySQL协议的纯Node.js JavaScript客户端的文档在第一个主题中说,您不应该从connection.query方法返回任何内容

这就是说,

函数dbData{ connection.query'SELECT*FROM clients',err,results,fields=>{ 返回结果; }; } 应该是没有任何回报或只是回报

函数dbData{ 连接。查询“从客户端选择*”,函数错误,结果,字段{ 如果错误抛出错误; 记录“解决方案为:”,结果; }; } 所以,当您执行console.logdata时,实际上是在打印未定义的数据,因为它不应该返回任何东西。如果您想从查询中提取结果,则应该考虑使用回调。

函数dbDatacallback{ 连接。查询“从客户端选择*”,函数错误,结果,字段{ 如果错误抛出错误; 回调结果; }; } app.get'/',req,res=>{ dbDatadata=>{ 控制台日志数据; }; }; 谢谢,解决了
connection.query('SELECT * FROM clientes', (err, results, fields)=>{
        console.log(results);
        return results;
    });