2014-01-22 76 views
4

當調試模式打開時,是否有任何方式在控制檯上僅顯示SQL查詢? 我想減少顯示的信息量。knex.js - 僅調試SQL

感謝您的幫助;)

+0

見https://github.com/tgriesser/knex/issues/167 – vaughan

回答

4

其實,如果你使用MySQL,你可以設置

debug: ['ComQueryPacket'] 

爲MySQL的(不Knex)的配置設置的一部分。

我會考慮在Knex中添加這個選項。

+0

感謝@tgriesser – rizidoro

5

如果您需要的是顯示查詢字符串,一種方法是註冊一個函數,該函數使用Knex在執行查詢之前發出的事件'query'來記錄查詢數據。

例如:

var knex = require('knex'); 
knex.on('query', function(queryData) { 
    console.log(queryData); 
}); 

之後,每個查詢之前,匿名函數被調用,queryData包含JSON與有關查詢的信息。

+0

我這樣做,但我得到了'類型錯誤:未定義不是function'錯誤。在設置env之後,如何在運行應用程序時進行調試時使用 – Najafsen

8

設置環境變量來配置debug模塊:

  • DEBUG=knex:query只是查詢
  • DEBUG=knex:tx的交易
  • DEBUG=knex*的一切。
+1

? – user269867