eggjs如何查看刚刚执行的sql语句?

比如我用egg-mysql框架提供的

 const results = await this.app.mysql.select('posts', { // 搜索 post 表
  where: { status: 'draft', author: ['author1', 'author2'] }, // WHERE 条件
  columns: ['author', 'title'], // 要查询的表字段
  orders: [['created_at','desc'], ['id','desc']], // 排序方式
  limit: 10, // 返回数据量
  offset: 0, // 数据偏移量
});

我该如何查看这条封装语句所执行的原生sql语句呢??

阅读 8.2k
3 个回答

看了文档,没有发现有这个功能。可否换个做法去处理,使用mysql log来调试。

show variables like 'general_log'
set GLOBAL general_log='ON';
SET GLOBAL general_log_file = '/tmp/mysql.log'

不使用的时候记得关掉,否则会大量占用磁盘空间。

配置文件中可直接设置开关

config.mysql = {
    // 单数据库信息配置
    client: {
      // host
      host: 'x x x x',
      // 端口号
      port: '3306',
      // 用户名
      user: 'x x x x',
      // 密码
      password: 'x x x x',
      // 数据库名
      database: 'x x x',
      debug: false //打印sql
    },
    // 是否加载到 app 上,默认开启
    app: true,
    // 是否加载到 agent 上,默认关闭
    agent: false,
  }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题