node.js mysql查询不能运行,因为数字附近有引号

我有这个mysql的查询写在node.js mysql和restify要在HTTP GET中执行。 https://github.com/felixge/node-mysql

var api_get_func = function (app, url_path) { function respond(req, res, next) { var id= req.query.id; var limit = req.query.limit; var query_str = "SELECT table.sw_type, " + "FROM users " + "WHERE (id = ?) " + "LIMIT ?"; //limit var var_arr = [id, limit]; var query = connection.query(query_str, var_arr, function (err, rows, fields) {} //SQL query ... return next(); } app.get(url_path, respond); } 

HTTP GET URL是http://127.0.0.1/read_sw?id=51&limit=1

报告的错误是查询不正确。 实际的查询看起来像这样;

 SELECT table.sw_type, FROM users WHERE (id = 51) LIMIT '1' 

我认为问题是LIMIT '1' 。 我认为解决scheme是使查询看起来像这样;

 SELECT table.sw_type, FROM users WHERE (id = 51) LIMIT 1 

如何修改node.js代码?

这不是关于MySQL …

req.query中的任何内容都是一个string:

怎么样

 var var_arr = [id, parseInt(limit)]; 

你也可以使用

 var limit = Number(req.query.limit);