Vue+express+mysql(1)Vue项目构建

1.利用vue-cli脚手架创建一个vue项目
a.全局安装Vue
npm install @vue/cli -g
b.创建Vue项目
vue create project-front
在这里插入图片描述
header.js
封装请求头

import $md5 from 'js-md5'

export function getHeader(url,code){
    //时间戳
    let timestamp=Date.now()
    let token=sessionStorage.getItem('user-token')===null?'':sessionStorage.getItem('user-token')
    let source='web'
    let sign=$md5(source+url+code+timestamp+token)
    
    return {'Content-type':'application/json;charset=UTF-8','token':token,
    'timestamp':timestamp,'code':code,'sign':sign,'source':source
}
}

request.js
axios请求封装

import axios from 'axios'
import {getHeader} from '@/headers/header'
import {Message,MessageBox} from 'element-ui'

let baseURL='/'
//创建axios实例

const service=axios.create({
    baseURL:baseURL,
    timeout:30000 //请求超时时间
})

//request拦截器
service.interceptors.request.use(
    config=>{
    let url=config.url.replace(config.baseURL,'')
    let code=config.code;
    config.headers=getHeader(url,code)//让每个请求携带自定义签名
    return config
},
 error=>{
     Promise.reject(error)
   
 }
)

//response拦截器

service.interceptors.response.use(
    response=>{
        
    if(response.config.responseType=='blob')  {  
        if(response.status==200){
            return response
        }else {
            return Promise.reject('error')
        }
    }else{
      const res=response.data;
      if(res.code===200){
          return response.data
      }else if(res.code===407){
        //   console.log('token失效跳转登录页面')
        // sessionStorage.clear();
        // location.href=''
      }else{
          Message({
              message:res.message,
              type:'error',
              duration:5*1000
          })
          return Promise.reject('error')
      }
    }
   },
   error=>{
       Message({
           message:error.message,
           type:'error',
           duration:5*1000
       })
      
       return Promise.reject(error)
   }
)

export default service

api.js
请求接口

import request from './request'

export function getList(data){
    return request({
        url:'/api/index',
        method:'post',
        data,
        
    })
}

export function insertForm(data){
    return request({
        url:'/api/insert',
        method:'post',
        data,
    })
}
export function updateForm(params){
     return request({
         url:'/api/update',
         method:'get',
         params
     })
}
export function deletelist(data){
    return request({
        url:'/api/delete',
        method:'delete',
        data
    })
}

export function importFile(data){
   return request({
        url:'/api/import',
        method:'post',
        data
    })
}

export function exportFile(data){
    return request({
        url:'/api/export',
        method:'post',
        data,
        responseType:'blob'
    })
}
export function pageQuery(params){
    return request({
        url:'/api/pageQuery',
        method:'get',
        params
    })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值