nodejs+webpack+vue之node

本項目是基於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

相關文章
相關標籤/搜索