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