你的 Node.js 应用还在裸奔运行吗?还在用 node app.js 这种原始方式部署?是时候让 PM2 来接管了!不管你是 Node.js 新手,还是需要部署生产环境的开发者,本文都能帮你全面掌握这个必备神器,从基础使用到高级配置,简洁好懂、一网打尽。 一、为什么必须用 PM2?不只是守护进程 1. 传统部署的致命缺陷(新手必避坑) # 🚨 新手常见错误部署方式node app.js & # 后台运行,但崩溃不重启nohup node app.js & …
你的 Node.js 应用还在裸奔运行吗?还在用 node app.js 这种原始方式部署?是时候让 PM2 来接管了!不管你是 Node.js 新手,还是需要部署生产环境的开发者,本文都能帮你全面掌握这个必备神器,从基础使用到高级配置,简洁好懂、一网打尽。 一、为什么必须用 PM2?不只是守护进程 1. 传统部署的致命缺陷(新手必避坑) # 🚨 新手常见错误部署方式node app.js & # 后台运行,但崩溃不重启nohup node app.js & …
在 Web 系统中,**登录 ≠ 安全**。 真正决定系统安全性的,是 **登录后的“确权”能力**。 很多项目在登录之后,都会遇到这些问题: Token 永久有效,无法主动失效 用户修改密码后,旧登录仍然可用 多端登录无法控制 Token 校验逻辑散落在各个接口 高并发下,登录态校验性能差 这些问题的本质是: > **缺少一个统一、可控、具备时效性的登录确权中间件** 一、什么是登录确权中间件? 登录 vs 确权 **确权发生在每一次 API 请求中。** 登录确权中间件的职责 校验用户身份是否合法 校验登…
前言 在 JavaScript 后端运行时领域,速度一直是核心战场。近年来,Bun 以其宣称的“一体化”工具链和闪电般的启动速度异军突起,对老牌王者 Node.js 发起了强劲挑战。bun run 的迅捷,让许多开发者开始重新评估他们的工具选择。 然而,Node.js 并未止步。自 v22.0.0 起,它悄然引入了一个专为启动性能而生的秘密武器:node --run。这个内置于 Node.js 核心的命令,旨在以最精简、最直接的方式执行 package.json 中的脚本,宣称要为最常见的用例提供“顶级性能”。…
本文将以 **Node.js 中间件封装** 为主题,从 **原理 → 设计 → 封装模式 → 实战示例 → 工程化建议** 系统讲解中间件的正确使用方式。 一、什么是 Node.js 中间件? 一句话理解 **中间件就是夹在“请求”和“响应”之间的一层可复用逻辑** Request ↓ Middleware A ↓ Middleware B ↓ Business Logic ↓ Response 中间件解决什么问题? 日志 鉴权 限流 参数校验 错误处理 性能监控 👉 **与业务无关,却必须存在的能力** 二、中…
在http模块写上 http{ # 1. 定义是否为静态文件 map $uri $is_static_file { default 0; ~*\.(gif|png|jpg|jpeg|webp|css|js|woff|woff2|svg|ico|ttf|eot|pdf|doc|docx|xls|xlsx|ppt|pptx|mp4|avi|mov|wmv|flv|swf|zip|rar|tar|gz)$ 1; } # 2. 定义是否跳过服务端缓存 map $is_static_file $bypass_cache { …
先创建仓库 gitee:https://gitee.com/zhaoyangweb/gitee.git github: https://github.com/aiyaodada/github.git gitea: https://git.zhaoyangweb.com/aiyao/gitea.git 先给当前仓库绑定到这三个地址 git remote add gitee https://gitee.com/zhaoyangweb/gitee.git git remote add github https://git…
IDEA Maven工具栏 Lifecycle / 生命周期 clean : 清理 执行该命令会删除项目路径下的target文件 validate : 验证 验证项目是否正确 所需的信息是否完整 compile : 编译 会生成一个target文件夹 文件夹中是编译源文件src的class项目文件 test : 测试 自动执行java项目的测试类 package : 打包 将java的源代码打包成字节码的jar包(war包或其它形式的包) 但没有把打好的可执行jar包布署到本地maven仓库和远程maven私服仓库…
RedisJson: 复杂的JSON查询和更新 内存版的MongDB RedisSearch: 全文搜索 内存版的ES RedisGraph: 图数据库功能 neo4j RedistTimeSeries: 处理时间序列数据 内存版InfluxDB
GPL 开发的项目必须也是GPL协议 分析:我让你免费用我的这个项目,但是你如果开源的话也必须让别人免费用、不能改成其他协议 LGPL LGPL是GPL宽松版本 可以在非GPL的项目中使用 分析:一般LGPL往往是给一些类库准备的,让私有的项目也可以使用这个类库 MIT License 几乎没有任何限制 唯一要求需要包含原始许可证和版权申明 分析:随便用,只需要提一下原作者就行 Apache Licenese 2.0 允许用户以任何目的使用、修改及分发软件 保护用户不会受到专利侵权的诉讼 可商用 分析:随便用,还能…
对于 CentOS 7,使用以下命令替换默认配置 sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \ -i.bak \ /etc/yum.repos.d/CentOS-Base.repo 对于 CentOS 8 Stream,使用以下命令替换默认的…