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

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

相关推荐
我不吃饼干7 小时前
在 React 中实现倒计时功能会有什么坑
前端·react.js
小小小小宇7 小时前
前端PerformanceObserver
前端
王者鳜錸7 小时前
PYTHON从入门到实践-18Django从零开始构建Web应用
前端·python·sqlite
拾光拾趣录7 小时前
ES6到HTTPS全链路连环拷问,99%人第3题就翻车?
前端·面试
haaaaaaarry8 小时前
Element Plus常见基础组件(二)
开发语言·前端·javascript
xyphf_和派孔明8 小时前
关于echarts的性能优化考虑
前端·性能优化·echarts
PyHaVolask9 小时前
HTML 表单进阶:用户体验优化与实战应用
前端·javascript·html·用户体验
A了LONE9 小时前
cv弹窗,退款确认弹窗
java·服务器·前端
AntBlack9 小时前
闲谈 :AI 生成视频哪家强 ,掘友们有没有推荐的工具?
前端·后端·aigc
花菜会噎住10 小时前
Vue3核心语法进阶(computed与监听)
前端·javascript·vue.js