本項目是基於node環境下運行的,首先需安裝node.js,下載地址http://www.nodejs.org/,安裝完成後,在安裝express(web 開發框架)。html
var express = require('express'); var app = express();
本項目的數據存儲方式有兩種,一種是mysql,另外一種是文件形式。如需用mysql,必須先安裝mysql,再在node環境下安裝mysql。vue
nodejs鏈接mysqlnode
var mysql = require('mysql'); var pool = mysql.createPool({ //鏈接池 host:'localhost', user:'root', password:'root', port:'3306', database:'mystudy' //數據庫名稱 }) pool.getConnection(function(err,conn){ if(err){ ...... }else{ var selectSQL= "select * from usersinfo"; conn.query(selectSQL,function(err,result){ ...... //釋放鏈接 conn.release(); }); } });
nodejs以文本的方式數據存儲mysql
var fs = require('fs'); //讀取usersinfo.json裏的數據 fs.readFile('usersinfo.json',function(err,data){ if(err){ ...... }else{ var result=JSON.parse(data.toString()); } res.send(result); })
判斷採用哪一種數據存儲方式webpack
var datasource="file";// file or mysql //發送請求時 if(datasource=="file"){ //採用文本的數據存儲方式 fileManger.getItemList(req,res); }else{ //採用mysql數據存儲方式 databaseManger.getItemList(req,res); }
nodejs跨域支持,*號表明容許任何請求web
app.all('*', function(req, res, next){ const origin = req.headers.origin; res.header('Access-Control-Allow-Origin', origin); res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, token,sign'); res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE'); next(); });
安全認證:判斷客戶端與服務端的簽名是否一致,採用了crypto模塊,crypto模塊主要提供了加密、解密、簽名、驗證等功能。sql
var crypto = require('crypto'); function checkSign(req,res){ var appSecret = '!Q@W#E$R'; var sign; var md5Conent; if(req.method=='GET'){ sign=req.headers.sign; md5Conent = JSON.stringify(req.query) + "|" + appSecret; } else{ sign=req.body.headers.sign; md5Conent = JSON.stringify(req.body.params) + "|" + appSecret; } var newSign = crypto.createHash('md5').update(md5Conent).digest('hex'); if(sign==newSign){ return true; } return false; }
上一篇:nodejs+webpack+vue之webpack數據庫
下一篇:nodejs+webpack+vue之vueexpress