Javascript 从mysql查询返回“results”参数时未定义
试图使用Node.js和Express从MySQL数据库向EJS发送数据,但返回'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
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;
});