首页 > Web开发 > 详细

nodejs+webpack+vue之node

时间:2017-01-30 20:17:48      阅读:337      评论:0      收藏:0      [点我收藏+]

本项目是基于node环境下运行的,首先需安装node.js,下载地址http://www.nodejs.org/,安装完成后,在安装express(web 开发框架)。

var express = require(express);
var app = express();

本项目的数据存储方式有两种,一种是mysql,另一种是文件形式。如需用mysql,必须先安装mysql,再在node环境下安装mysql。

nodejs连接mysql

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以文本的方式数据存储

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

判断采用哪种数据存储方式

var datasource="file";// file or mysql

//发送请求时
if(datasource=="file"){
    //采用文本的数据存储方式
    fileManger.getItemList(req,res);
}else{
     //采用mysql数据存储方式
    databaseManger.getItemList(req,res);
}   

nodejs跨域支持,*号代表允许任何请求

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模块主要提供了加密、解密、签名、验证等功能。

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之node

原文:http://www.cnblogs.com/kerry-xu/p/6358308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!