详解如何在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 相关文章推荐
xml 与javascript结合的问题解决方法
Mar 24 Javascript
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
基于datagrid框架的查询
Apr 08 Javascript
jQuery中[attribute^=value]选择器用法实例
Dec 31 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
Jun 06 Javascript
简单实现js轮播图效果
Jul 14 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
Aug 27 Javascript
layui 表格操作列按钮动态显示的实现方法
Sep 06 Javascript
node 标准输入流和输出流代码实例
Sep 19 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
python直接访问私有属性的简单方法
2016/07/25 Python
Python和Go语言的区别总结
2019/02/20 Python
python tkinter组件使用详解
2019/09/16 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
python实现的分层随机抽样案例
2020/02/25 Python
师德个人剖析材料
2014/02/02 职场文书
人事助理自荐信
2014/02/02 职场文书
商场促销活动方案
2014/02/08 职场文书
小学生期末评语
2014/04/21 职场文书
高效课堂标语
2014/06/26 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
员工生日活动方案
2014/08/24 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
Java实现二分搜索树的示例代码
2022/03/17 Java/Android