详解如何在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 相关文章推荐
有道JavaScript监听浏览器的问题
Jun 23 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
vue2.0开发实践总结之疑难篇
Dec 07 Javascript
js手机号批量滚动抽奖实现代码
Apr 17 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 Javascript
JS动态显示倒计时效果
Dec 12 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
php编程每天必学之表单验证
2016/03/01 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
webpack多页面开发实践
2017/12/18 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
python图片验证码生成代码
2016/07/02 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
python万年历实现代码 含运行结果
2017/05/20 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
精细化工应届生求职信
2013/11/17 职场文书
幼儿园托班开学寄语
2014/01/18 职场文书
新教师工作感言
2014/02/16 职场文书
爱心助学感谢信
2015/01/21 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
正规欠条模板
2015/07/03 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL