如何正确配置 Next.js 作为前端和 Express 应用程序作为后端?

Mim*_*oid 9 node.js express reactjs next.js

目前我有用于前端的 create-react-app 和用于后端的 Express 服务器。在我的 create-react-app 的 package.json 中,我使用像这样的代理"proxy": "http://localhost:5000"。我需要使用相同的 Express 服务器为 Next.js 应用程序实现相同的目标。

我只是希望能够使用我的 Express 服务器而不是 Next.js 中内置的 API 路由,并像在 create-react-app 中那样代理它。

即使我没有更改它的任何功能,我是否需要创建自定义 Next.js 服务器?如何正确地做到这一点?

Aur*_*ana 4

是的,你必须在下一个js中添加自定义服务器

安装express js,然后在下一个js项目的根目录中添加文件server.js

const express = require('express')
const next = require('next')
const bodyParser = require('body-parser')

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

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

  server.use(bodyParser.json())
// add custom path here
// server.post('/request/custom', custom);

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

  server.listen(3000, (err) => {
    if (err) throw err
    console.log('Ready on http://localhost:5000')
  })
})
Run Code Online (Sandbox Code Playgroud)

之后更改 package.json 文件脚本部分

"scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js",
} 
Run Code Online (Sandbox Code Playgroud)