如何在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
相关产品推荐
相关产品推荐

