Next.js如何设置反向代理

1.尝试用server.js 中增加http-proxy-middleware,但是不起作用

const express = require('express')
const next = require('next')
const proxyMiddleware = require('http-proxy-middleware')

const port = parseInt(process.env.PORT, 10) || 3000
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dir: '.', dev })
const handle = app.getRequestHandler()

app.prepare()
.then(() => {
  const server = express()

  server.get('/', (req, res) => {
    return app.render(req, res, '/')
  })

  server.get('*', (req, res) => {
    return handle(req, res)
  })

  const proxyTable = {
    '/api': {
            target: 'https://xx.xxx.com/',
            secure: false,
            pathRewrite: {'^/api' : ''},
            changeOrigin: true
        }
  }

  // proxy api requests
  Object.keys(proxyTable).forEach(function (context) {
    var options = proxyTable[context]
    if (typeof options === 'string') {
      options = { target: options }
    }
    server.use(proxyMiddleware(context, options))
  })

  server.listen(port, (err) => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
})
.catch((ex) => {
  console.error(ex.stack)
  process.exit(1)
})
阅读 11.4k
2 个回答

先用npm安装proxy,下面是我的配置
clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题