You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何部署NextJS + Express服务,生产环境配置及Heroku部署方法问询

生产环境代码补全方案

你需要先在Express入口文件顶部引入NextJS依赖:
const next = require('next')
然后将生产环境判断块的代码替换为以下内容即可:

// if isDev === 'production'
if(!isDev) {
  // 初始化生产模式的NextJS实例,dir参数指向你的前端代码存放目录
  const nextApp = next({ dev: false, dir: './client' })
  const nextRequestHandler = nextApp.getRequestHandler()

  const startProduction = async () => {
    try {
      // 连接生产环境数据库
      await mongoose.connect(process.env.DBURL, {
        useNewUrlParser: true,
        useUnifiedTopology: true
      })
      // 等待NextJS完成生产环境资源初始化
      await nextApp.prepare()
      
      // 所有非/api前缀的请求全部交给NextJS处理,支持SSR/SSG/静态资源加载
      app.all('*', (req, res) => {
        return nextRequestHandler(req, res)
      })

      // 启动服务,Heroku会自动注入PORT环境变量,无需手动修改
      app.listen(PORT, () => console.log(`生产服务已启动,监听端口:${PORT}`))
    } catch (error) {
      console.error('生产服务启动失败:', error)
      process.exit(1)
    }
  }

  startProduction()
}

Heroku部署配置步骤
  • 配置根目录package.json的脚本规则,Heroku部署时会自动执行build命令构建资源,执行start命令启动服务:
    {
      "scripts": {
        "build": "cd client && npm install && npm run build && cd ../server && npm install",
        "start": "cd server && node 你的服务入口文件名.js"
      }
    }
    
    请将上述代码中的「你的服务入口文件名.js」替换为server目录下实际的入口文件名,比如index.js、server.js。
  • 在Heroku后台配置环境变量,路径为:应用后台 → Settings → Config Vars,新增以下变量:
    • NODE_ENV:值填production
    • DBURL:值填你的生产环境MongoDB连接地址,推荐使用MongoDB Atlas的免费实例
    • CLIENT_URL:值填你的Heroku应用域名,格式为https://你的应用名.herokuapp.com,不要加末尾斜杠
  • 调整.gitignore规则,排除client/.next、node_modules、.env这类不需要提交的文件,Heroku会自动安装依赖、构建资源
  • 正常提交代码到Heroku仓库即可完成部署,Heroku会自动执行构建、启动流程

常见问题排查
  • 如果启动时提示找不到next模块,确认client目录的package.json已安装next依赖,也可以将next安装到根目录依赖中解决
  • 如果调用接口提示跨域,检查CORS配置中的origin值是否和生产环境域名完全匹配
  • 如果NextJS页面加载失败,确认初始化NextJS实例时的dir路径正确,你的前端代码存放在client目录,填./client即可

内容的提问来源于stack exchange,提问作者Evgeny Alekseev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:05