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

如何将Express服务器部署到HostMonster托管的自有域名?

部署Express投票应用到HostMonster的问题

问题背景

我正在开发全栈投票应用,本地运行正常,用SSMS存储投票结果并展示。现在要部署到HostMonster托管的网站,已经创建并配置好SQL Server,但应用无法正常运行,99%确定问题出在Express服务器。

相关代码

server.js

const express = require('express')
const databaseOperations = require('./src/database/operations')
const cors = require('cors')

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

app.use(express.json())
app.use(express.urlencoded({extended: true}));
app.use(cors())

app.get('/api', async (req, res) => {
    const result = await databaseOperations.getGraphVotes();
     res.send(result)
});

app.listen(API_PORT, () => console.log(`listening on port ${API_PORT}`))

前端请求代码

const newData = await fetch('https://example.com:4000/api', {

(注:example.com为我的域名)

疑问

是否需要在HostMonster上配置该端口?找不到相关文档,也不知道该搜什么关键词。请问该如何配置部署这个Express服务器?


解决方案

1. 端口配置核心问题

HostMonster这类共享虚拟主机不允许对外暴露自定义端口(如4000),默认只开放80(HTTP)和443(HTTPS)端口对外提供服务。你前端请求里带的:4000是本地开发的习惯,部署后必须去掉,直接请求https://example.com/api。

你的Express代码里用process.env.PORT是正确的——HostMonster会自动分配内部可用端口,这个端口不需要手动配置,也不会对外暴露,应用只需监听这个环境变量指定的端口即可。

2. HostMonster上Express应用部署步骤

  • 启用Node.js环境:登录HostMonster控制面板,找到「Node.js」或「应用管理器」,启用对应版本的Node.js,创建应用实例并指定项目路径。
  • 修改前端请求地址:把https://example.com:4000/api改为https://example.com/api;如果Express应用部署在子路径(如example.com/backend),需同步调整请求路径。
  • 验证数据库连接:确认databaseOperations中的连接字符串是HostMonster提供的SQL Server地址、用户名、密码,而非本地SSMS的连接信息。
  • 启动应用:通过HostMonster的Node.js管理界面启动应用,或用SSH连接服务器后,进入项目目录执行npm start(需确保package.json中配置了start脚本)。
  • 日志排查:若仍无法运行,查看HostMonster提供的应用日志(通常在Node.js管理界面或项目目录的logs文件夹内),排查是否存在连接错误、依赖缺失、端口冲突等问题。

3. 有效搜索关键词

查官方文档时,用「HostMonster Node.js deployment」「HostMonster Express setup」「HostMonster SQL Server Node.js connection」这类关键词,能找到针对性的配置指南。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:22:22