Heim  >  Artikel  >  Web-Frontend  >  Wie füge ich einen ProxyTable-Proxy in Nuxt hinzu?

Wie füge ich einen ProxyTable-Proxy in Nuxt hinzu?

php是最好的语言
php是最好的语言Original
2018-08-09 16:01:042815Durchsuche

Hintergrund

Wenn Sie bei der lokalen Entwicklung von Vue-Projekten daran gewöhnt sind, proxyTable lokale domänenübergreifende Probleme zu lösen und zu nuxt zu wechseln, werden Sie feststellen, dass die proxyTable-Einstellungen hinzugefügt werden Das funktioniert nicht. Das liegt daran, dass Sie das Vue-Gerüst zum Generieren des Vue-Projekts verwendet haben, das bereits den entsprechenden proxyTable-Einstellungscode für Sie geschrieben hat.

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))
})

Dies ist in Form von Express-Middleware und die verwendete Abhängigkeit ist http-proxy-middleware
nuxt hat auch das Konzept von Middleware, aber das hier Middleware Die Datei ist nicht die Middleware von Express. Wie fügen wir sie also zu Nuxt hinzu?


So geht's

Zuerst Abhängigkeiten installieren
npm install --save-dev express http-proxy-middleware
und dann eine Datei im Stammverzeichnis erstellen 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')
und dann in nuxt.config.js den folgenden Code hinzufügen
module.exports = {
    dev: {
    proxyTable: {
          '/api':
            {
                target: 'http://localhost:7001', // 
                pathRewrite: { '^/api': '/' }
            }
        }
      }
}

und dann node server.js ausführen.
Wenn Sie die Ausführung als unpraktisch empfinden, können Sie den Befehl zur Datei package.json hinzufügen.

{
     "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"
    }
}

Verwandte Empfehlungen:

So fügen Sie Videos zur Website hinzu

So fügen Sie Cookies zum HTTP-Anfrageheader hinzu

Das obige ist der detaillierte Inhalt vonWie füge ich einen ProxyTable-Proxy in Nuxt hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn