利用eval属性完成数据库的增删改(可以使用mongodb的原生操作)
发布于 12 年前 作者 fyddaben 4956 次浏览 最后一次编辑是 8 年前
        var Db = require('mongodb').Db,
        Server = require('mongodb').Server;
        var db = new Db('test', new Server('locahost', 27017));
   //首先封装这个eval方法.只需要传递想要运行的sql语句即可.
     var opendb={
          execute:function (sql){
              db.open(function(err,db){
                  db.eval('function () {'+sql+'}', function(err, result) {
                              if(err)console.log(err);
                              console.log('success...');
                         });
                      });
                 }
         }

      var util={
       //jsonObject为字符串。例如{id:1,'age':12};
        add:function(tablename,jsonObject){
           	var sql='db.'+tablename+'.save('+jsonObject+')';
            opendb.execute(sql);        
          },
       //id为键值对的形式,例如id:1
        update:function(tablename,id,jsonObject){
           var sql="db."+tablename+".remove("+id+");db."+tablename+".save("+jsonObject+");";
           opendb.execute(sql);   
        },
         delete:function(tablename,id){
          var sql="db."+tablename+".remove("+id+");";
         opendb.execute(sql);
          }
      }
       module.exports=util;
2 回复

你这确定不会出现SQL脚本注入吗?不推荐使用eval

嗯。这个我还真没想到,只是感觉这样比较好理解就用的这个方法。

回到顶部