如何将本地API部署至公网域名,实现网站完整功能?
MERN电商网站后端API部署方案
适合新手的托管平台(替代Render)
- Railway:免费额度覆盖小型项目需求,部署Node.js API流程简单,支持关联GitHub仓库自动部署。注意点:
- 确保项目根目录的
package.json包含正确的start命令(例如"start": "node server.js") - 在平台控制台配置好环境变量(数据库连接字符串、JWT密钥等敏感信息)
- 部署完成后复制生成的公网API地址,替换前端代码中硬编码的本地API路径
- 确保项目根目录的
- Vercel:原本专注前端部署,现在支持Node.js后端(Serverless/Edge Functions)。若API逻辑轻量,可适配为Serverless Functions,部署流程和前端一致,关联GitHub仓库即可完成。
- Fly.io:适合需要长期运行的服务,免费额度够用,支持Docker或直接部署Node.js项目,文档清晰,新手按步骤操作即可完成部署。
数据库配套部署建议
- 若使用MongoDB,优先选择MongoDB Atlas免费集群,无需自行搭建数据库。复制Atlas提供的连接字符串到后端环境变量中,本地与线上后端可共用同一数据库,避免数据不一致问题。
- 务必确保后端代码通过读取环境变量连接数据库,禁止硬编码本地数据库地址。
跨域问题解决
前端与后端部署在不同域名下会触发跨域,两种解决方式:
- 后端使用
cors包,配置允许前端域名(例如https://your-hostinger-domain.com)访问 - 若Hostinger支持,在前端部署时配置反向代理,将前端API请求代理至后端公网地址,前端可使用相对路径发起请求,规避跨域限制
Render部署失败排查要点
- 检查
package.json的scripts字段是否包含start命令,Render默认执行npm start启动服务 - 确认环境变量配置正确(如数据库连接字符串无拼写错误、敏感信息完整)
- 查看Render部署日志,日志会明确报错原因(如依赖安装失败、端口占用、数据库连接超时),根据报错信息针对性修复
长期进阶方案:VPS自行部署
若项目规模扩大且预算充足,可选择入门级VPS(如DigitalOcean、Linode实例)自行部署,自由度更高:
- 购买VPS后登录服务器,安装Node.js环境
- 上传后端代码,使用
pm2进程管理器维持服务后台运行 - 配置Nginx反向代理,将域名指向VPS IP,通过Let's Encrypt配置免费HTTPS证书
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

