如何查看查询 `knex` 构建?

How can I view the query `knex` builds?

出于调试目的,我想查看 SQL 查询 knex 是否正在执行。例如,我想查看 knex 为此代码生成的 SQL:

 knex('statistics')
    .del()
    .where({
        'stats': 'reddit',
    }); 

http://knexjs.org/#Interfaces-toSQL

knex('statistics')
    .del()
    .where({
        'stats': 'reddit',
    }).toSQL().toNative()
knex('statistics')
    .del()
    .where({
        'stats': 'reddit',
    }).toString();

在我的例子中 toSQL()... 不会产生“已解析”的 SQL 字符串,只有 toString() 有效,我不确定这是否取决于一个人的具体情况查询生成器的使用。

要打印所有查询,然后在初始化对象上传递 debug: true 标志,将为所有查询打开 debugging

knex({
    client: 'mysql',
    debug: true,
    connection: {
        host: '127.0.0.1',
        port: 3306,
        user: 'root',
        password: '',
        database: ''
    }
})

参考:https://knexjs.org/#Installation-debug

你可以使用toKnexQuery().toSQL()

console.log(query.toKnexQuery().toSQL())