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

部署在Heroku上的Node.js应用API端点无法访问,求解决办法

部署到Heroku后Node.js API端点无法访问的问题

我本地可正常运行的Node.js API端点为:http://localhost:3000/api/user/login/(附截图),但将应用部署到Heroku后,该端点无法被调用(附截图)。我尝试的Heroku访问地址是:

https://employee-management-app-001.herokuapp.com/api/user/login

以下是我的服务器文件代码:

const express = require('express')
const app = express()
const mongoose = require('mongoose')

const port = process.env.PORT || 3000;
const uri = 'mongodb+srv://user1:1234@cluster0.pkiw6x0.mongodb.net/comp3123_assignment1'
//const jwt =require('jsonwebtoken');
var cors = require('cors')
app.use(cors())
mongoose.connect(uri, {
    useNewUrlParser: true,
    useUnifiedTopology: true
}).then(() => {
    console.log("Successfully connected to the database mongoDB Atlas Server");    
}).catch(err => {
    console.log('Could not connect to the database.', err);
    process.exit();
});

app.use(express.json())
const usersRouter = require('./routes/users')
app.use('/api/user',usersRouter)

const employeesRouter = require('./routes/employees')
app.use('/api/emp',employeesRouter)

mongoose.connect(uri)
app.listen(port,()=> console.log("Server Started on Port "+port))

排查与解决建议

  • 修正路由末尾斜杠匹配问题:本地端点带末尾斜杠/login/,但Heroku访问的是/login,如果路由定义严格匹配路径,会导致404。可以修改路由规则为/login/?(允许末尾斜杠可选),或者确保Express的strict routing设置为默认的false。
  • 删除重复的数据库连接代码:代码里重复调用了mongoose.connect(uri),第二次调用没有错误处理,生产环境中可能引发异常,建议删除这行重复代码。
  • 查看Heroku运行日志:执行heroku logs --tail命令实时查看服务器日志,检查是否有数据库连接失败、端口绑定错误、路由加载失败等报错信息,这是定位问题最直接的方式。
  • 检查MongoDB Atlas的IP白名单:确认MongoDB Atlas的安全设置中,是否允许Heroku服务器的IP访问。可以临时将白名单设置为0.0.0.0/0测试是否是IP限制导致的问题(测试后记得改回更严格的规则)。
  • 确认Heroku启动命令正确:检查package.json中的start命令是否指向正确的服务器文件,比如"start": "node server.js",确保Heroku能正确启动应用。
  • 优化CORS配置(可选):虽然已使用cors中间件,但可以尝试显式指定允许的Origin:
    app.use(cors({
      origin: "https://employee-management-app-001.herokuapp.com",
      credentials: true
    }));
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:55:20