详解如何在nuxt中添加proxyTable代理


Posted in Javascript onAugust 10, 2018

背景

在本地开发vue项目的时候,当你习惯了proxyTable解决本地跨域的问题,切换到nuxt的时候,你会发现,添加了proxyTable设置并没有什么作用,那是因为你是用的vue脚手架生成的vue项目,它里面已经帮你写好了相关的proxyTable的设置代码。

build/dev-server.js

// proxy api requests
Object.keys(proxyTable).forEach(function (context) {
 var options = proxyTable[context]
 if (typeof options === 'string') {
  options = { target: options }
 }
 app.use(proxyMiddleware(options.filter || context, options))
})

这里是采用的express中间件的形式,使用的依赖是http-proxy-middleware

nuxt也有中间件的概念,不过这个中间件不是express的中间件,那么我们怎么添加到nuxt里面去呢?

怎么做

首先,安装依赖

npm install --save-dev express http-proxy-middleware

然后在根目录创建一个文件server.js

const { Nuxt, Builder } = require('nuxt')
const app = require('express')()
var proxyMiddleware = require('http-proxy-middleware')
var config = require('./nuxt.config')
// 我们用这些选项初始化 Nuxt.js:
const isProd = process.env.NODE_ENV === 'production'
const nuxt = new Nuxt({ dev: !isProd })
// 生产模式不需要 build
if (!isProd) {
 const builder = new Builder(nuxt)
 builder.build()
}

// proxy api requests这里就是添加的proxyTable中间价的设置了
var proxyTable = config.dev.proxyTable
Object.keys(proxyTable).forEach(function (context) {
  var options = proxyTable[context]
  if (typeof options === 'string') {
   options = { target: options }
  }
  app.use(proxyMiddleware(options.filter || context, options))
 })
app.use(nuxt.render)//这里是添加nuxt渲染层服务的中间件



app.listen(3000)
console.log('Server is listening on http://localhost:3000')

然后在nuxt.config.js中添加如下代码

module.exports = {
  dev: {
  proxyTable: {
     '/api':
      {
        target: 'http://localhost:7001', // 
        pathRewrite: { '^/api': '/' }
      }
    }
   }
}

然后node server.js运行就可以了。

觉得运行不方便还可以把命令添加到package.json文件里。

{
   "scripts": {
    "dev": "nuxt --port=8080",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "precommit": "npm run lint",
    "server": "node server.js"
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
js写的评论分页(还不错)
Dec 23 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
js实现div层缓慢收缩与展开的方法
May 11 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
Nov 13 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
Dec 04 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
Aug 04 Javascript
微信开发之微信jssdk录音功能开发示例
Oct 22 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
JavaScript实现京东快递单号查询
Nov 30 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 #Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
Aug 10 #Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 #Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
Aug 10 #Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 #Javascript
解决bootstrap-select 动态加载数据不显示的问题
Aug 10 #Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
Aug 10 #Javascript
You might like
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
Python3实现生成随机密码的方法
2014/08/23 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
python tkinter窗口最大化的实现
2019/07/15 Python
python tornado使用流生成图片的例子
2019/11/18 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
Python可以用来做什么
2020/11/23 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
综治目标管理责任书
2015/05/11 职场文书
教师节主题班会教案
2015/08/17 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python