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

Express服务本地正常,部署至Vercel/Netlify后无法工作求助

实时聊天应用部署Vercel/Netlify后无法正常运行

问题背景

我开发了一款实时聊天应用,在本地localhost环境下运行完全正常,但部署到Vercel或Netlify后就无法工作。已按照指引在项目根目录创建vercel.json配置文件,部署时也正确添加了所有环境变量,但部署完成后访问始终报错,且Vercel的构建日志里没有任何错误或警告信息。我怀疑问题出在vercel.json中的路径配置"src": "../backend/server.js",因为代码里的模块导入也用了类似的相对路径。

后端文件夹结构

  • IMAGE1:后端文件夹结构截图1
  • IMAGE2:后端文件夹结构截图2

配置文件代码

vercel.json

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

错误情况

部署后的访问地址:https://backend-chat-app-rouge.vercel.app/
访问时出现错误,错误截图:ERROR

核心业务代码

server.js

const PORT = process.env.PORT || 6001;
const dotenv = require(`dotenv`);
dotenv.config({ path: `./config.env` });
const app = require(`../backend/app`);
const mongoose = require(`mongoose`);

const DB = process.env.MONGO_URL.replace(`<PASSWORD>`, process.env.PASSWORD);

mongoose
  .connect(DB, {})
  .then((con) => {
    console.log(`DB is connected`);
  })
  .catch((err) => {
    console.log(err);
  });

const http = require("http");
const server = http.createServer(app);
const io = require("socket.io")(server);

io.on("connection", (socket) => {
  console.log("A client connected");

  socket.on("message", (message) => {
    console.log("Received message:", message);
    io.emit("message", message);
  });
});

server.listen(PORT, () => {
  console.log(`Aplikacija radi na portu broj ${PORT}`);
});

app.js

const express = require(`express`);
const app = express();
const userRouter = require(`../backend/routes/userRoutes`);
const chatRouter = require(`../backend/routes/ChatRoutes`);
const messageRouter = require(`../backend/routes/MessageRoutes`);
const cors = require(`cors`);
const bodyParser = require(`body-parser`);

// 中间件
app.use(bodyParser.json());

app.use((err, req, res, next) => {
  if (err instanceof SyntaxError && err.status === 400 && "body" in err) {
    res.status(400).json({ status: "failed", message: "Invalid JSON payload" });
  } else {
    next();
  }
});

app.use(
  cors({
    origin: "*",
    credentials: true,
  })
);

// 路由配置
app.use(`/`, userRouter);
app.use(`/chat`, chatRouter);
app.use(`/messages`, messageRouter);

module.exports = app;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:53:14