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

Heroku部署Node.js后端遇404错误求助

Next.js+Node.js部署Heroku出现404错误的解决方法

问题根源

你的server.js中定义了根路径/的处理路由,但没有把创建好的router挂载到Express应用实例上,导致访问Heroku应用根路径时,Express找不到对应路由处理逻辑,返回404错误。

看你代码里的关键问题点:

const router = express.Router();

router.get("/", (req, res) => {
    res.send("Server is up!");
});
module.exports = router; // 导出了router但当前文件未使用它
// 后续代码里没有将router挂载到app的操作

修复步骤

  1. 删除多余的module.exports = router;语句(你不需要在其他文件导入这个router,当前文件直接使用即可)
  2. 在app.listen代码之前,添加挂载根路由的代码:
app.use("/", router);

修改后的server.js核心部分示例:

const jwt = require("jsonwebtoken");
const express = require("express");
const app = express();
const PORTS = process.env.PORT || 8080;
const cors = require("cors");
const router = express.Router();

router.get("/", (req, res) => {
    res.send("Server is up!");
});
// 移除module.exports = router;

const sign = require("./apis/sign");
const upload = require("./apis/upload");
const KEY = "asfasfgasghhgewgwedsgawsdg";

app.use(cors());
app.use(express.json());

app.use("/sign", sign);
app.use("/upload", upload);

// 挂载根路由
app.use("/", router);

app.listen(PORTS, () => {
    console.log("Server started on port:", PORTS);
});

验证

重新部署修改后的代码到Heroku,访问应用根路径(https://pet-finder-1-6e4ec11ea0c6.herokuapp.com/),应该会返回"Server is up!",说明根路由已正常工作。

同时检查前端请求的/sign、/upload等接口路径是否正确,只要./apis/sign和./apis/upload中的路由逻辑无误,这些接口也能正常响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:03:30