我正在现有应用程序中进行如下查询,并希望获得一些建议/示例,了解如何使用生成器为 KOA + co-mysql 重构它,避免或简化带有 sql 调用的链式函数。js也可以,当然我用的是nodejs 0.11和支持生成器的cs版本。仍在尝试掌握“新方式”。
谢谢,克
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()