node 笔记

一、node里面使用mysqlhtml

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

(1)数据库连接 mysql

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

使用:sql

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;

使用:express

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

 二、图片上传和保存json

 注意:数组

  (1)若是保存图片不存在的话,要本身手动建立,否则图片保存不下来服务器

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

    解决方法:

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

 

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

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

 四、node-mysql防止SQL注入

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

(1)mysql.escape(param)

(2)connection.escape(param)

(3)pool.escape(param)

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

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

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

相关文章
相关标签/搜索