zoukankan      html  css  js  c++  java
  • node 笔记

    1、node里面使用mysql

    查询语句的表和字段名用两个??,参数值用?表示

    (1)数据库链接 

    var mysql = require('mysql');
    var connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'a11111111',
        database : 'ccl_project_db'
    });
    module.exports = connection;

    使用:

    connection.connect(function(err, conne) {
          if (err) throw err;
          const sql = `select * from user`;
          connection.query(sql, function(err, rows) {
              if (err) throw err;
              res.json(rows);
          });
    });

    (2)连接池

    var mysql = require('mysql');
    var pool = mysql.createPool({    
        host     : 'localhost',
        user     : 'root',
        password : 'a11111111',
        database : 'ccl_project_db',
        port: 3306,
        stringifyObjects: true, //对象类型设置。默认false : RowDataPacket对象 , true : json对象
        dateStrings : true, //日期时间类型设置。默认false : 2016-08-31T02:00:32.000Z (UTC通用标准时) , true : 2016-08-31 10:00:32 (常用日期时间格式)
    }); //数据库连接池
    
    var query=function(sql,options,callback){  
        pool.getConnection(function(err,conn){  
            if(err){  
                callback(err,null,null);  
            }else{  
                conn.query(sql,options,function(err,results,fields){  
                    //释放连接  
                    conn.release();  
                    //事件驱动回调  
                    callback(err,results,fields);  
                });  
            }  
        });  
    };  
    
    module.exports = query;

    使用:

    const sql = `select * from user`;
        query(sql, '', function(err,results,fields){  
            if (err) throw err;
            res.json(results);
        });

     2、图片上传和保存

     注意:

      (1)如果保存图片不存在的话,要自己手动创建,不然图片保存不下来

      (2)打开服务器本地的静态文件图片乱码

        解决方法:

    var options = {
      dotfiles: 'ignore',
      etag: false,
      extensions: ['htm', 'html'],
      index: false,
      maxAge: '1d',
      redirect: false,
      setHeaders: function (res, path, stat) {
        res.set('x-timestamp', Date.now())
      }
    }
    app.use(express.static('public', options));

      (3)上传的图片太大报错

      request entity too large 413

      解决

    app.use(bodyParser.urlencoded({limit:'50mb',extended:true}));

    3、node服务端的后台页面显示是源码的形式显示出来

      加上这个,就可以让页面显示出来,而不是以源码的形式显示出来

     4、node-mysql防止SQL注入

    方法一:对传入的参数进行编码:

    (1)mysql.escape(param)

    (2)connection.escape(param)

    (3)pool.escape(param)

    方法二:使用sql语句的使用使用?

      方法内部会自动对参数进行编码

    方法三:mysql.format(sql,参数数组)

  • 相关阅读:
    DataTable不能通过已删除的行访问该行的信息解决方法
    datatable删除行之datatable.Rows[i].Delete()。标记之后行没有了
    js判断字符串是否在数组中
    发布webservice之后调用不通
    实体类配置xml相关属性排序问题、json前后台交互
    Java堆和栈的区别 经典总结
    Java IO
    XSL 简明教程 (下)
    XSL 简 明 教 程(上)
    跟我学XSL
  • 原文地址:https://www.cnblogs.com/qzccl/p/8124365.html
Copyright © 2011-2022 走看看