Heim > Web-Frontend > js-Tutorial > Hauptteil

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

php是最好的语言
Freigeben: 2018-08-09 16:01:04
Original
2821 Leute haben es durchsucht

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))
})
Nach dem Login kopieren

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
Nach dem Login kopieren
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')
Nach dem Login kopieren
und dann in nuxt.config.js den folgenden Code hinzufügen
module.exports = {
    dev: {
    proxyTable: {
          '/api':
            {
                target: 'http://localhost:7001', // 
                pathRewrite: { '^/api': '/' }
            }
        }
      }
}
Nach dem Login kopieren

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"
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!