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