node的项目实战相关3-部署

cors跨域

js 复制代码
// 安装
npm i cors

// app.js
// cors
const cors = require("cors")

// *
app.use(cors()) // 使用cors

// 配置指定地址:
const corsOpt = {
  origin: "http://localhost:5558",
}
app.use(cors(corsOpt))

注意点:

模型是单数,表名是复数

已有表的情况下,使用orm

错误排查:如表单添加时的?问题

服务器与域名

购买阿里云服务器e实例

注册域名,实名模板认证

备案

SSH远程连接服务器

连接服务器,更新linux软件包

js 复制代码
ssh root@你的公网ip

// 输入密码

// 登录上服务器后
# 更新软件包列表
apt update

# 安装更新
apt upgrade -y

使用密钥连接服务器

js 复制代码
// 退出服务器
exit

// 生成ssh密钥,和git的密钥一样,密钥的位置在c:/user/8244/.ssh中,一个.pub公钥一个私钥

// 在云服务器中添加密钥对

// 再次登录后无需输入密码即可登录
ssh root@你的公网ip

使用 SSH 配置文件

js 复制代码
// c:/user/8244/.ssh中找到config,输入
Host hk
    HostName 公网ip
    User root

// 登录
ssh hk

宝塔面板

安装宝塔面板

js 复制代码
https://www.bt.cn/new/download.html#linux

// 连接服务器
ssh hk

// 复制粘贴ubuntu命令行
wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh && sudo bash install_panel.sh ed8484bec

配置安全组

js 复制代码
云服务器中-安全组-管理规则-添加安全组-源:所有IPv4(0.0.0.0/0)

// 登录宝塔面板(外网ipv4面板地址)
设置中可以修改账号密码、端口号、安全入口

软件商店中安装node v20.15.1,安装完成后记得修改命令行为20.15.1\nginx v1.26.3\mysql v8.0

上传代码、配置数据库

修改代码中的问题

js 复制代码
dotenv要提前,∵中间件也在使用.env中的配置

.env文件中要添加
NODE_ENV=development

// git push更新代码

上传代码到宝塔上,修改代码

js 复制代码
// 使用ssh把gitee上的代码提交上去

// 前置工作

// 宝塔-终端-生成rsa密钥
ssh-keygen -t rsa
// 查看密钥内容-gitee项目-管理-部署公钥管理-添加公钥-添加完成
cat ~/.ssh/id_rsa.pub

// 宝塔-文件-/www/wwwroot下-终端-git clone xxx-yes-关闭刷新-就能看到自己的项目了

// 安装依赖包
npm i

// 复制粘贴.env文件,改为
NODE_ENV=production
SECRET=密钥

// 生成密钥
cmd-node(进入交互模式)-
const crypto = require('crypto');-
console.log(crypto.randomBytes(32).toString('hex'));
-得到密钥放到.env中

配置数据库

js 复制代码
宝塔-数据库-root密码复制-在项目的config.json中的production中修改password-保存关闭

宝塔-文件-项目目录下-终端-## *创建数据库*
npx sequelize-cli db:create --charset utf8mb4 --collate utf8mb4_general_ci --env production

## *创建数据表*
npx sequelize-cli db:migrate --env production

## *生成初始数据*
npx sequelize-cli db:seed:all --env production

## *. 使用 MySQL 客户端,远程管理数据库*-完成!

pm2部署项目

解析域名

js 复制代码
阿里云-域名-域名列表-添加记录-得到域名api.wananlily.asia-ping api.clwy.cn可以测试

添加站点

js 复制代码
// 宝塔-网站-添加PM项目

配置SSL

配置-encrypt-全选-强制https

## Apifox 增加正式环境配置

js 复制代码
暂时使用公网ip:3000等待备案

更新项目

注意:git pull之后重启站点

在一台服务器上,如何部署多个项目

相关推荐
胡gh4 小时前
页面卡成PPT?重排重绘惹的祸!依旧性能优化
前端·javascript·面试
言兴4 小时前
# 深度解析 ECharts:从零到一构建企业级数据可视化看板
前端·javascript·面试
山有木兮木有枝_4 小时前
TailWind CSS
前端·css·postcss
烛阴5 小时前
TypeScript 的“读心术”:让类型在代码中“流动”起来
前端·javascript·typescript
杨荧5 小时前
基于Python的农作物病虫害防治网站 Python+Django+Vue.js
大数据·前端·vue.js·爬虫·python
Moment6 小时前
毕业一年了,分享一下我的四个开源项目!😊😊😊
前端·后端·开源
程序视点7 小时前
Escrcpy 3.0投屏控制软件使用教程:无线/有线连接+虚拟显示功能详解
前端·后端
silent_missile7 小时前
element-plus穿梭框transfer的调整
前端·javascript·vue.js
专注VB编程开发20年7 小时前
OpenXml、NPOI、EPPlus、Spire.Office组件对EXCEL ole对象附件的支持
前端·.net·excel·spire.office·npoi·openxml·spire.excel
古蓬莱掌管玉米的神7 小时前
coze娱乐ai换脸
前端