zoukankan      html  css  js  c++  java
  • nodejs+webpack+vue之node

    本项目是基于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之webpack

    下一篇:nodejs+webpack+vue之vue

  • 相关阅读:
    机器学习(二)分类决策树
    机器学习(一):朴素贝叶斯
    NLP(五):关键词提取补充(语料库和向量空间)
    oracle变量的定义和使用【转】
    一些开发技巧和工具使用心得
    醒狮赋
    C# 字符串的截取和替换
    C# 判断字符串是否为日期格式
    重装系统
    电脑桌面所有图标消失
  • 原文地址:https://www.cnblogs.com/kerry-xu/p/6358308.html
Copyright © 2011-2022 走看看