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之后重启站点

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

相关推荐
Hockor1 小时前
用 Kimi K2 写前端是一种什么体验?还支持 Claude Code 接入?
前端
杨进军1 小时前
React 实现 useMemo
前端·react.js·前端框架
海底火旺1 小时前
浏览器渲染全过程解析
前端·javascript·浏览器
你听得到111 小时前
揭秘Flutter图片编辑器核心技术:从状态驱动架构到高保真图像处理
android·前端·flutter
驴肉板烧凤梨牛肉堡1 小时前
浏览器是否支持webp图像的判断
前端
Xi-Xu1 小时前
隆重介绍 Xget for Chrome:您的终极下载加速器
前端·网络·chrome·经验分享·github
摆烂为不摆烂1 小时前
😁深入JS(九): 简单了解Fetch使用
前端
杨进军1 小时前
React 实现多个节点 diff
前端·react.js·前端框架
用户40812812003811 小时前
拓展运算符和剩余参数
前端
再见了那维莱特1 小时前
6.29 drilling notes
前端