我正在做查询像下面在现有的应用程序,并希望一些建议/例子,如何重构这与生成器KOA + co-mysql避免或简化与sql调用链接函数。JS很好,当然,我使用nodejs 0.11和支持生成器的CS版本。我还在努力掌握"新方法"的窍门。
谢谢,K
client = mysql.createPool(mysql_options)
getSql = (sql, callback) ->
client.query sql, (err, rows, fields) ->
if err #mysql error handling
if err.code isnt 'PROTOCOL_CONNECTION_LOST'
console.log 'Mysql Error <> Conn.Lost: ',err.stack
process.on "uncaughtException", (err) ->
console.log "getSql Mysql Error Caught Exception: ", err.stack
return
else
setTimeout ->
console.log 'Connection Lost; Re-connecting lost client (restart delay): ',err.stack
client = mysql.createPool(mysql_options)
return
, 700
client.release
callback rows
q10 = -> # and in the routes...
sql = "select count(*) as custCount from cust01 where sessionid = '" + prSid + "' and custNum = " + "'" + sessionLoginUser + "'"
getSql sql, (results) ->
q20(results[0].custCount)
q20 = (custCount) ->
....etc etc
q10()
使用co-mysql,他们的示例脚本将在CoffeeScript(带有xixixao fork)中:
co = require('co')
mysql = require('co-mysql')
co( -->
connection = mysql.createConnection options
connection.connect()
result = yield connection.query('SELECT 10086 + 10000 AS q')
connection.end()
)()