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

如何在Vercel正确部署Node.js后端?含命名与目录结构疑问

我的MERN栈LMS部署与后端相关问题

我是Next.js与MERN栈新手,近期完成了一个MERN栈LMS(学习管理系统)网站,前端采用Next.js,后端基于Node.js、Express与TypeScript开发。此前参考的教程使用Heroku部署,但目前Heroku已收费,我尝试在Vercel部署时出现404错误。同时我有两个疑问:

  • 后端应称其为Node.js服务器还是Express.js?
  • 这类后端的合适目录结构是什么?

我的服务器文件存放在GitHub仓库:nahinAbrar/CodeLoomAcademy

我曾参考文章尝试部署但未成功,以下是我的配置文件:

package.json

{
  "name": "server",
  "version": "1.0.0",
  "description": "educatumacademy",
  "type": "commonjs",
  "main": "build/server.js",
  "engines": {
    "node": "18.x"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "ts-node-dev --respawn --transpile-only server.ts",
    "start": "node dist/server.js",
    "build": "tsc"
  },
  "author": "nahinAbrar",
  "license": "ISC",
  "dependencies": {
    "@types/bcryptjs": "^2.4.6",
    "@types/cookie-parser": "^1.4.7",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/jsonwebtoken": "^9.0.6",
    "@types/node": "^20.14.10",
    "@types/node-cron": "^3.0.11",
    "@types/socket.io": "^3.0.2",
    "axios": "^1.7.2",
    "bcryptjs": "^2.4.3",
    "cloudinary": "^2.2.0",
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "dotenv": "^16.4.5",
    "ejs": "^3.1.10",
    "express": "^4.19.2",
    "express-rate-limit": "^7.4.0",
    "ioredis": "^5.4.1",
    "jsonwebtoken": "^9.0.2",
    "mongodb": "^6.8.0",
    "mongoose": "^8.5.0",
    "node-cron": "^3.0.3",
    "nodemailer": "^6.9.14",
    "socket.io": "^4.7.5",
    "stripe": "^16.8.0",
    "ts-node-dev": "^2.0.0",
    "typescript": "^5.5.3"
  },
  "devDependencies": {
    "@types/ejs": "^3.1.5",
    "@types/nodemailer": "^6.4.15"
  },
  "pre-commit": [
    "ts.check",
    "build",
    "add-build"
  ]
}

tsconfig.json

{
  "compilerOptions": {
    "target": "ESNext", 
    "module": "CommonJS", 
    "esModuleInterop": true, 
    "forceConsistentCasingInFileNames": true,
    "strict": true, 
    "skipLibCheck": true,
    "types": ["node"]  
  }
}

vercel.json

{
    "version": 2,
    "builds": [
      {
        "src": "server.ts",
        "use": "@vercel/node"
      }
    ],
    "routes": [
      {
        "src": "/(.*)",
        "dest": "server.js"
      }
    ]
  }

内容的提问来源于stack exchange,提问作者Asm Nahin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:53:21