如安在nuxt中增加proxyTable代办

背景

在当地开辟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"
    }
}
    原文作者:ovensi
    原文地址: https://segmentfault.com/a/1190000015946547
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞