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,參數數組)

相關文章
相關標籤/搜索