Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中执行动态查询的方法_Javascript_Mysql_Node.js_Node Mysql - Fatal编程技术网

Javascript 在node.js中执行动态查询的方法

Javascript 在node.js中执行动态查询的方法,javascript,mysql,node.js,node-mysql,Javascript,Mysql,Node.js,Node Mysql,我试图弄清楚如何在node.js中使用node mysql进行动态查询。要插入和更新的表和字段取决于用户从数据对象发出的请求。我想创建一个模块来存储不同的查询,如下所示,但运气不好。它给了我这个错误: TypeError: Object function (){ var likes = 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)'; return likes; } has no method 'replace' app.

我试图弄清楚如何在node.js中使用node mysql进行动态查询。要插入和更新的表和字段取决于用户从
数据
对象发出的请求。我想创建一个模块来存储不同的查询,如下所示,但运气不好。它给了我这个错误:

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

querys.js
中的导出更改为设置为SQL字符串而不是函数,因为这是您当前处理它们的方式:

module.exports = {
 item_like: 'INSERT IGNORE INTO item (id,like_type) VALUES(?,?)',
 people: 'INSERT IGNORE INTO people (id,like_type) VALUES(?,?)'
}