• webpack-dev-conf.js做后台数据模拟


    以前学习vue时,通过在dev-server.js里书写代码来进行后台数据模拟。刚刚发现新版本的vue-cli 脚手架中没有了dev-server.js文件,该如何模拟后端数据呢?

    需求:请求qq音乐接口数据时,由于host和referer的限制,请求被拒绝。很自然的想到要修改header,前端是不能直接修改request header的,需要通过后端代理的方式去解决。也就是需要我们手动代理这样的请求,前端请求我们自己的地址/api/getDiscList,然后我们的地址再去请求服务端。

    我们自己的地址如何在nodejs请求服务端?

    这里用ajax库axios,在浏览器中发送的是xmlhttprequest,而在nodejs中发送http请求,支持promise。

    于是:通过axios来修改header。

    别忘记首先要安装axios。这里只讨论webpack.dev.conf.js文件。

    1、webpack.dev.conf.js文件

    const express = require('express')
    const axios = require('axios')
    const app = express()
    var apiRoutes = express.Router()
    app.use('/api', apiRoutes)

    2、找到devServer,向其中添加如下代码

       before(app) {
          app.get('/api/getDiscList', (req, res) => {
            var url = 'https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg'
            axios.get(url, {
              headers: {
                referer: 'https://c.y.qq.com/',
                host: 'c.y.qq.com'
              },
              params: req.query
            }).then((response)=>{
              res.json(response.data)
            }).catch((error)=>{
              console.log(error)
            })
          })
        }

    3. recommend.js文件中获取歌单数据

    export function getDiscList() {
        const url = '/api/getDiscList'
        const data = Object.assign({}, commonParams, {
          platform: 'yqq',
          hostUin: 0,
          sin: 0,
          ein: 29,
          sortId: 5,
          needNewCode: 0,
          categoryId: 10000000,
          rnd: Math.random(),
          format: 'json'
        })
        return axios.get(url, {
          params: data
        }).then((res) => {
          return Promise.resolve(res.data)
        })
    }

    搞定。

    参考:

    1.SegmentFault

    2.涂涂的csdn

    3.webpack官网的devServer描述

  • 相关阅读:
    支付宝 微信支付 移动支付 网站支付 开发
    2017 开源中国评比的前100个优秀开源项目
    解决error: Your local changes to the following files would be overwritten by merge
    Spring-JDBC配置
    server library[unbound] 服务未绑定解决办法
    MyEclipse安装EGit插件方法
    使用GitHub和Eclipse进行javaEE开发步骤
    Spring-AOP
    SQL-字符串连接聚合函数
    Spring-注入外部值
  • 原文地址:https://www.cnblogs.com/PeriHe/p/9037014.html
Copyright © 2020-2023  润新知