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