Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass parameters to mysql query callback in nodejs

Tags:

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).

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

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?

I have the following (pseudo-code):

... 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;     }; } 

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

How do I do that?

like image 486
Julio Avatar asked Dec 28 '13 21:12

Julio


People also ask

How do you pass a callback function in node?

var myCallback = function(data) { console. log('got data: '+data); }; var usingItNow = function(callback) { callback('get it? '); }; Now open node or browser console and paste the above definitions.

What parameters are passed to a callback in node js?

Traditionally, the first parameter of the callback is the error value. If the function hits an error, then they typically call the callback with the first parameter being an Error object. If it cleanly exits, then they will call the callback with the first parameter being null and the rest being the return value(s).

Does node js allow to communicate with MySQL?

Quick Start: How to Use MySQL in NodeCreate a new project: mkdir mysql-test && cd mysql-test . Create a package. json file: npm init -y . Install the mysql module: npm install mysql .


1 Answers

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

like image 188
Chris Avatar answered Oct 26 '22 13:10

Chris