关于Vue使用Mock接口报404的问题

关于Vue使用Mock接口报404的问题

初次在Vue中使用Mock的时候,引用了网上的常用做法:在根目录的vue.config.js文件下引用:

module.export = {
    lintOnSave: false,
    devServer: {
        // before: require('./mock/index.js')
        before(app) {
            console.log('before ')
            app.get("/user/info", (rep, res) => {
                console.log('in mock')
                var json = {
                    name: 'hh',
                    age: 24
                }
                res.json(Mock.mock(json))
            })
        }
    }
}

但最终不管我怎么引用,都无法正常调用接口*/user/info*,总是报404。

尝试了很久,终于发现我的启动命令 npm run dev中 ,在package.json中的命名是:

scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "unit": "jest --config test/unit/jest.conf.js --coverage",
    "e2e": "node test/e2e/runner.js",
    "test": "npm run unit && npm run e2e",
    "build": "node build/build.js"
  },

因此我直接找到webpack.dev.conf.js文件,添加:

before: app => {
      console.log('before ')
        app.get("/user/info", (rep, res) => {
            console.log('in mock')
            var json = {
                name: 'hh',
                age: 24
            }
            res.json(Mock.mock(json))
        })
    }

添加位置在:

// cheap-module-eval-source-map is faster for development
  devtool: config.dev.devtool,

  // these devServer options should be customized in /config/index.js
  devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: {
      rewrites: [
        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
      ],
    },
    hot: true,
    contentBase: false, // since we use CopyWebpackPlugin.
    compress: true,
    host: HOST || config.dev.host,
    port: PORT || config.dev.port,
    open: config.dev.autoOpenBrowser,
    overlay: config.dev.errorOverlay
      ? { warnings: false, errors: true }
      : false,
    publicPath: config.dev.assetsPublicPath,
    proxy: config.dev.proxyTable,
    quiet: true, // necessary for FriendlyErrorsPlugin
    watchOptions: {
      poll: config.dev.poll,
    },
    before: app => {
      console.log('before ')
        app.get("/user/info", (rep, res) => {
            console.log('in mock')
            var json = {
                name: 'hh',
                age: 24
            }
            res.json(json)
        })
    }
    
  },
  plugins: [

然后再调用接口*/user/info*,调用正常

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Vue项目中,Mock是一种用于模拟接口数据的技术。它可以在测试过程中,用虚拟的对象来代替一些不容易构造或获取的对象,以便进行测试。\[1\] 在Vue项目中使用Mock,一般需要进行以下几个步骤: 1. 创建mock文件夹:在项目的src目录下创建一个名为mock的文件夹,用于存放Mock相关的文件。 2. 配置vue.config.js文件:在项目的根目录下找到vue.config.js文件(如果没有则需要手动创建),在该文件中进行Mock的配置。可以通过配置webpack的devServer属性来启用Mock服务。 3. 编写Mock接口:在mock文件夹下创建一个index.js文件,用于配置Mock服务。在该文件中,可以使用Mock.js来模拟接口数据。可以根据需要创建多个模拟接口的文件,放在api文件夹下。 4. 在项目中使用Mock:在需要使用Mock数据的地方,可以通过import语句引入Mock接口文件,并使用其中定义的接口进行数据模拟。 5. 添加环境变量:为了在不同的环境中使用不同的Mock配置,可以在项目中添加环境变量,根据环境变量的值来判断是否启用Mock服务。\[2\]\[3\] 需要注意的是,Mock只在开发环境中使用,不会影响生产环境。在生产环境中,Mock相关的代码会被自动剔除。 #### 引用[.reference_title] - *1* *3* [mockvue项目中的使用 —— json写法](https://blog.csdn.net/myisyourbb/article/details/118759231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在Vue项目中使用Mock](https://blog.csdn.net/weixin_42275702/article/details/117621167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值