vue+node(express)做中间层开发四--express支持axios

在上文设置了experss支持es6之后,就可以把vue代码里的axios搬过来了。
这一步只新增一个qs包 npm install qs

在src文件夹下新建一个libs文件,把api.request.jsaxios.js文件搬过来,修改一下import的路径:

import HttpRequest from './axios'
import config from '../config'

axios.js中的store不会用到,删除之,addErrorLog方法也删除掉。

新建一个config文件夹,用来放配置文件。server/node_api/src/config/index.js

export default {
  baseUrl: {
    dev: 'http://www.xxxx/',    // 测试服务器
    prod: 'http://www.xxxx/'    // 正式服务器
  },
}

新建一个api文件夹,用来放api,server/node_api/src/api/users.js

import express from 'express'
import axios from '../libs/api.request'
import qs from 'qs'
/**
 * 登陆
 */
export const login = (data) => {
  return axios.request({
    url: 'hdapi/admin/login',
    method: 'post',
    data: qs.stringify(data)
  })
}

/**
 * 登陆
 */
export const getUserInfo = (query) => {
  return axios.request({
    url: 'hdapi/admin/queryUserByToken',
    method: 'get',
    params: query
  })
}

现在开始用usersRouter了。编辑server/node_api/src/app.js新增

import usersRouter from './routes/users'
...
app.use('/users', usersRouter)

编辑server/node_api/src/routes/users.js,把controller操作写在这里面

import express from 'express'
import { login, getUserInfo } from '../api/users'

var router = express.Router()

router.post('/login', (req, res, next) => {
  login({user_name: 'admin', user_pwd: '666'}).then(result => {
    const {result: { data: { data: {user, token }}}} = {result}
    console.log('token',token)
    res.send({
      token,
      user
    })
  })
})

export default router
Screen Shot 2020-12-31 at 18.20.20.png

后续还可以做的

  • 后台做错误页面跳转
  • 增加分流机制
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容