【问题标题】:Ways to do a dynamic query in node.js在 node.js 中进行动态查询的方法
【发布时间】:2015-01-02 11:57:52
【问题描述】:

我试图弄清楚如何在 node.js 中使用 node-mysql 进行动态查询。插入和更新哪些表和字段取决于用户来自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};

【问题讨论】:

    标签: javascript mysql node.js node-mysql


    【解决方案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(?,?)'
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 2012-08-15
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 2017-05-10
      • 1970-01-01
      相关资源
      最近更新 更多