在 node.js 中执行动态查询的方法
Ways to do a dynamic query in node.js
我正在尝试弄清楚如何使用 node-mysql 在 node.js 中进行动态查询。要插入和更新哪些 table 和字段取决于用户对 data
对象的请求。我想创建一个模块来存储不同的查询,如下所示,但没有成功。它给了我这个错误:
TypeError: Object function (){
var likes = 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)';
return likes;
} has no method 'replace'
app.js
var queries = require('./queries');
.....
socket.on("like",function(data){
var table_file = data[0].table;
var d = data[1];
connection.query(queries[table_file]
,[d.id,d.like_type],function(err,rows,fields){
if(err){ throw err;}
console.log(rows);
});
queries.js:
module.exports = {
item_like:function(){
var likes = 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)';
return likes;
},
people:function(){
var likes = 'INSERT IGNORE INTO people (id,like_type) VALUES(?,?)';
return likes;
}
}
这是发送到套接字的数据对象:
data object: {table:item_like},{id:1,like_type:1};
将 queries.js
中的导出更改为 SQL 字符串而不是函数,因为这是您当前处理它们的方式:
module.exports = {
item_like: 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)',
people: 'INSERT IGNORE INTO people (id,like_type) VALUES(?,?)'
}
我正在尝试弄清楚如何使用 node-mysql 在 node.js 中进行动态查询。要插入和更新哪些 table 和字段取决于用户对 data
对象的请求。我想创建一个模块来存储不同的查询,如下所示,但没有成功。它给了我这个错误:
TypeError: Object function (){
var likes = 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)';
return likes;
} has no method 'replace'
app.js
var queries = require('./queries');
.....
socket.on("like",function(data){
var table_file = data[0].table;
var d = data[1];
connection.query(queries[table_file]
,[d.id,d.like_type],function(err,rows,fields){
if(err){ throw err;}
console.log(rows);
});
queries.js:
module.exports = {
item_like:function(){
var likes = 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)';
return likes;
},
people:function(){
var likes = 'INSERT IGNORE INTO people (id,like_type) VALUES(?,?)';
return likes;
}
}
这是发送到套接字的数据对象:
data object: {table:item_like},{id:1,like_type:1};
将 queries.js
中的导出更改为 SQL 字符串而不是函数,因为这是您当前处理它们的方式:
module.exports = {
item_like: 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)',
people: 'INSERT IGNORE INTO people (id,like_type) VALUES(?,?)'
}