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

MERN应用后端部署失败求助:本地正常,Vercel/Railway部署失败

MERN后端部署至Vercel/Railway失败求助

首次尝试部署MERN应用的后端,多次部署到Vercel和Railway均失败,推测是代码问题导致。本地环境下所有功能正常,能正常连接MongoDB。

后端目录结构:
Folder Structure

以下是可能引发问题的文件:

index.js

const express = require("express");
const mongoose = require("mongoose");
const cors = require("cors");
const campgroundRoutes = require("./routes/campgrounds");
const userRoutes = require("./routes/users");

// express app

const app = express();
const PORT = process.env.PORT || 3000;

//middleware

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(
  cors({
    origin: "*", // Replace with the actual origin of your frontend
    credentials: true,
  })
);

const dbUrl = process.env.DB_URL;

// connect to db

mongoose.connect(dbUrl);

const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", () => {
  console.log("Connected to MongoDB");
});

//routes
app.use("/campgrounds", campgroundRoutes);
app.use("/api/users", userRoutes);

app.listen(PORT, () => {
  console.log(`Serving at http://localhost:${PORT}`);
});

routes/users.js

const express = require("express");
const router = express.Router();

const { registerUser, loginUser } = require("../controllers/users");

// register route
router.post("/register", registerUser);
// login route
router.post("/login", loginUser);

module.exports = router;

routes/campgrounds.js

const express = require("express");
const router = express.Router();
const campgrounds = require("../controllers/campgrounds");
const multer = require("multer");
const { storage } = require("../cloudinary");
const upload = multer({ storage });

router
  .route("/")
  .get(campgrounds.getAllCampgrounds)
  .post(upload.array("images", 4), campgrounds.createCampground);

router
  .route("/:id")
  .get(campgrounds.getCampgroundById)
  .put(upload.array("images", 4), campgrounds.updateCampground)
  .delete(campgrounds.deleteCampground);

module.exports = router;

package.json

{
  "name": "backend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon index.js",
    "start": "node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bcrypt": "^5.1.1",
    "cloudinary": "^1.41.0",
    "cors": "^2.8.5",
    "dotenv": "^16.3.1",
    "express": "^4.18.2",
    "jsonwebtoken": "^9.0.2",
    "mongodb": "^6.2.0",
    "mongoose": "^8.0.0",
    "multer": "^1.4.5-lts.1",
    "multer-storage-cloudinary": "^4.0.0",
    "validator": "^13.11.0"
  },
  "devDependencies": {
    "nodemon": "^3.0.3"
  }
}

实在找不到解决办法,恳请各位帮忙排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 18:55:15