P粉2129717452023-08-23 13:55:53
為了回答初始問題並舉例說明,將回呼函數包裝在一個立即建立包含傳入資料的「快照」作用域的匿名函數中。
var ix=1; connection.query('SELECT 1', (function(ix){ return function(err, rows, fields) { console.log("ix="+ix); console.log(rows); }; })(ix));
對於那些剛剛像我一樣了解這個概念的人來說,最後的})(ix)); 是外部的var ix=1 的值,它被傳遞給(function(ix){。如果你將console.log("ix=" abc); 改為console.log("ix=" abc);,那麼它可以被重新命名為(function(abc){。
fwiw(感謝Chris提供的鏈接,填補了空白以得出解決方案)
P粉4760461652023-08-23 11:39:22
如果您正在使用node-mysql,請按照文件中的說明進行操作:
connection.query( 'SELECT * FROM table WHERE id=? LIMIT ?, 5',[ user_id, start ], function (err, results) { } );
文件中也提供了適當轉義字串的程式碼,但在查詢呼叫中使用陣列會自動為您轉義。
https://github.com/felixge/node-mysql
#