详解如何在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 相关文章推荐
JSON JQUERY模板实现说明
Jul 03 Javascript
Jquery插件之多图片异步上传
Oct 20 Javascript
jquery插件jquery倒计时插件分享
Dec 27 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
canvas实现图像截取功能
Feb 06 Javascript
ztree实现权限横向显示功能
May 20 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 Javascript
Vue中computed、methods与watch的区别总结
Apr 10 Javascript
vue实现防抖的实例代码
Jan 11 Vue.js
解决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
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
2012/03/16 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
python检索特定内容的文本文件实例
2018/06/05 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python中图像通道分离与合并实例
2020/01/17 Python
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
环保建议书400字
2014/05/14 职场文书
党员承诺书格式
2014/05/21 职场文书
走群众路线学习笔记
2014/11/06 职场文书
总经理检讨书范文
2015/02/16 职场文书
会计出纳岗位职责
2015/03/31 职场文书
倡议书格式及范文
2015/04/29 职场文书
小兵张嘎观后感
2015/06/03 职场文书
课改心得体会范文
2016/01/25 职场文书
八年级作文之友谊
2019/12/02 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
Python3 类型标注支持操作
2021/06/02 Python
Python OpenGL基本配置方式
2022/05/20 Python