如何传递参数到nodejs中的mysql查询回调

问题描述:

我试图找出正确的方式传递自定义数据到一个查询调用在回调中可用。
我在nodejs中使用MySQL库(所有最新版本)。

I'm trying to figure out the correct way of passing custom data to a query call to be made available in the callback. I'm using MySQL library in nodejs (all latest versions).

我调用connection.query(sql,function(err,result) {...});

I have a call to connection.query(sql, function(err, result) {...});

我找不到一种方法1)传递自定义数据/参数到调用,以便2)回调被调用。
那么这样做的正确方法是什么?

I couldn't find a way to 1) pass custom data/parameter to the call so that 2) it can be made available when the callback is invoked. So what is the proper way of doing so?

我有以下(伪代码):

...
for (ix in SomeJSONArray) {
    sql = "SELECT (1) FROM someTable WHERE someColumn = " + SomeJSONArray[ix].id;
    connection.query(sql, function (err, result) {
      ...
      var y = SomeJSONArray[ix].id;
    };
}

从上面的代码,我需要能够传递当前值ix

From the code above, I need to be able to pass the current value of "ix" used in the query to the callback itself.

p>如果你使用的是node-mysql,就像文档所说的:

If you are using node-mysql, do it like the docs say:

connection.query('SELECT * FROM table WHERE id=? LIMIT ?, 5', [ user_id, start ], function (err, results) {

});

文档也有适当的字符串转义的代码,但在查询调用中使用数组会自动为你转义。

The docs also have code for proper escaping of strings, but using the array in the query call automatically does the escaping for you.

https://github.com/felixge/node-mysql