创建自定义服务器

现在我们将使用Express为我们的应用程序创建一个自定义服务器。 这很简单

首先,将Express添加到您的应用程序中:

  1. npm install --save express

然后在您的应用程序中创建一个名为“server.js”的文件,并添加以下内容:

  1. const express = require('express')
  2. const next = require('next')
  3. const dev = process.env.NODE_ENV !== 'production'
  4. const app = next({ dev })
  5. const handle = app.getRequestHandler()
  6. app.prepare()
  7. .then(() => {
  8. const server = express()
  9. server.get('*', (req, res) => {
  10. return handle(req, res)
  11. })
  12. server.listen(3000, (err) => {
  13. if (err) throw err
  14. console.log('> Ready on http://localhost:3000')
  15. })
  16. })
  17. .catch((ex) => {
  18. console.error(ex.stack)
  19. process.exit(1)
  20. })

现在更新你的npm dev脚本到:

  1. {
  2. "scripts": {
  3. "dev": "node server.js"
  4. }
  5. }

现在尝试用npm run dev再次运行你的应用程序。

你会得到什么样的体验?

  1. ✦它将为干净的URL添加服务器端支持。
  2. ✓该应用程序将工作,但没有服务器端干净的URL
  3. ✦应用程序会发出错误:“ExpressNext.js不能一起使用”。
  4. ✦应用程序将抛出一个错误:“Next.js自定义服务器只能在生产中工作”。