Koa2连接数据库时找不到query方法?
问题描述
使用Koa2连接数据库时,使用Promise和async-await封装了query方法,但是发现找不到query方法了。
相关代码
//query.js
const mysql = require("mysql");
const MYSQL_CONFIG = require("./mysql_config");
const pool = mysql.createPool(MYSQL_CONFIG);
const query = (sql, val) => {
return new Promise((resolve, reject) => {
pool.getConnection(function (err, connection) {
if (err) reject(err);
else {
connection.query(sql, val, (err, fields) => {
if (err) reject(err);
else resolve(fields);
connection.release();
});
}
});
});
};
module.exports = { query };
//app.js
const Koa = require("koa");
const router = require("koa-router")();
const query = require("./mysql/query"); //引入封装好的异步查询方法
const { QUERY_DATAS } = require("./mysql/sql"); //按需引入封装好的sql语句
const app = new Koa();
let res = query(QUERY_DATAS("admin"));
console.log(res);
module.exports = router;
报错
尝试debug
诡异的事情发生了
console.log(query)--
再试试
console.log(query.__proto__)--
问题
为什么会找不到query方法?
解决方法
在app.js中写一个async函数,在其中使用await接收返回的 promise 对象
const app = new Koa();
let dealRes = async () => {
let res = await query(QUERY_DATAS("admin"));
return res;
};
dealRes().then((res) => {
console.log(JSON.stringify(res[2].trueName));
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
或者上面不改,
改这里
或者不改上面的两个,而是改这里
以上三个地方选一个地方改应该就OK了