当前位置: 首页 > ai >正文

express+mongoose的node部署

部署上线

      • 项目准备工作
          • package.json文件
          • index.js文件
          • dev.env文件
          • prod.env文件
      • 宝塔准备工作
          • 端口开放(例如我弄的5000)
          • demo的数据库建立
      • 服务器端口开放
      • 部署步骤
          • 新建Node项目网站
          • 项目的模块导入
          • 启动报权限问题
          • 最后启动即可

项目准备工作

  • 项目的测试和正式环境区分
package.json文件
  • cross-env NODE_ENV=production,用于区分正式和测试环境
 "scripts": {"start": "nodemon index.js","start:prod": "cross-env NODE_ENV=production node index.js"},
index.js文件
const dotenv = require('dotenv')
const env = process.env.NODE_ENV || 'development';
if (env === 'development') {dotenv.config({ path: './config/dev.env' });
} else if (env === 'production') {dotenv.config({ path: './config/prod.env' });
}
dev.env文件
  • 本地开发,名字都是自定义
  • NODE_ENV是区分测试和正式的,
  • PORT是你端口设置
  • node_demo是你本地数据库
  • 其余看你项目需要啥,放啥,可选
NODE_ENV=development
PORT=5000
JWT_SECRET=godd
JWT_EXPIRES_IN=1d
MONGO_URI=mongodb://localhost:27017/node_demo
CORS_ORIGIN=http://localhost:5000
prod.env文件
  • demo:数据库用户名(替换为你宝塔中设置的用户名)
  • lusheng123:数据库密码(替换为你的实际密码)
  • 39.105.213.46:27017:数据库地址和端口(宝塔中 MongoDB 的地址,通常是服务器 IP + 27017)
  • demo:要连接的数据库名称
NODE_ENV=production
PORT=5000
JWT_SECRET=god
JWT_EXPIRES_IN=1d
MONGO_URI=mongodb://数据库用户名:数据库密码@数据库地址:端口/数据库名称
CORS_ORIGIN=http://demo.xxx.cn:5000(可选,本文是用于生成接口文档地址的)

宝塔准备工作

端口开放(例如我弄的5000)

在这里插入图片描述

demo的数据库建立

在这里插入图片描述

在这里插入图片描述

服务器端口开放

在这里插入图片描述

部署步骤

  • 项目压缩,放入宝塔/www/wwwroot(可以自己建个文件夹sunyay)下
  • 解压到sunyay里面
新建Node项目网站

在这里插入图片描述

在这里插入图片描述

项目的模块导入

在这里插入图片描述
注:cross-env模块需自己手动导入,到文件目录下的终端下,npm i cross-env
在这里插入图片描述

启动报权限问题
  • 终端执行代码
# 进入项目根目录
cd /www/wwwroot/sunyay/node_demo# 给 cross-env 脚本添加可执行权限
chmod +x node_modules/.bin/cross-env
最后启动即可
http://www.xdnf.cn/news/18402.html

相关文章:

  • 优考试局域网系统V6.0.0版
  • AI 论文周报丨多模态记忆智能体/视觉基础模型/推理模型等多领域成果一键速览
  • AI服务器介绍
  • 《Linux 网络编程一:网络编程导论及UDP 服务器的创建与数据接收》
  • 《基于大数据的农产品交易数据分析与可视化系统》选题不当,毕业答辩可能直接挂科
  • Linux系统 --- 指令
  • tauri配置允许执行eval脚本,在打包cocos游戏web/phone移动端的时候一定要配置
  • yolo训练实例(一)
  • AAA 服务器与 RADIUS 协议笔记
  • C++函数重载与引用详解
  • Django中间件自定义开发指南:从原理到实战的深度解析
  • 【机器学习深度学习】vLLM的核心优化技术详解
  • 大型语言模型中奖励模型的原理:训练、打分与更新
  • Java面试-自动装箱与拆箱机制解析
  • 零知开源——基于ESP8266(ESP-12F)驱动YS-IR05F红外控制空调
  • pytorch 网络可视化
  • Electron 核心 API 全解析:从基础到实战场景
  • k8sday14数据存储(2/2)
  • RSS与今日头条技术对比分析
  • 代码随想录刷题Day40
  • Linux 软件包安装和管理的相关操作及使用总结(未完成)
  • 漏洞分析 | Kafka Connect 任意文件读取漏洞(CVE-2025-27817)
  • 如何使用AI大语言模型解决生活中的实际小事情?
  • 【Protues仿真】基于AT89C52单片机的LCD液晶显示屏显示控制
  • 如何在 Axios 中处理多个 baseURL 而不造成混乱
  • portainer-ce汉化版下载
  • 从零开始的云计算生活——第四十九天,长路漫漫,kubernetes模块之持久化存储
  • 拆解本地组策略编辑器 (gpedit.msc) 的界面和功能
  • Kafka消息丢失的场景有哪些
  • ThingsBoard运行linux应用版本