PM2 的 Cluster 模式下使用 Log4js
配置log4js.config1234567891011121314151617181920{ /** * pm2 (boolean) (optional) * - set this to true if you're running your app using pm2, * otherwise logs will not work (you'll also need to install pm2-intercom as pm2 module: pm2 install pm2-intercom) */ "pm2": true, /** * pm2InstanceVar (string) (optional, defaults to 'NODE_APP_INSTANCE') * - set this if you're using pm2 and have changed the default name of the NODE_APP_INSTANCE variable...
package-lock.json 的作用
package-lock.json 文件的作用参考:https://www.cnblogs.com/kugeliu/p/9153775.html npm5 之后安装文件之后会多出一个 package-lock.json 的文件,它的作用是: 安装之后锁定包的版本,手动更改 package.json 文件安装将不会更新包,想要更新只能使用 npm install xxx@1.0.0 --save 这种方式来进行版本更新,package-lock.json 文件才可以 加快了 npm install 的速度,因为 package-lock.json 文件中已经记录了整个 node_modules 文件夹的树状结构,甚至连模块的下载地址都记录了,再重新安装的时候只需要直接下载文件即可 它的意义在于锁定了包的版本,确保能够避免包版本不同产生的问题。 最外面的两个属性 name、version 同 package.json 中的 name 和 version,用于描述当前包名称和版本。 dependencies 是一个对象,对象和 node_modules 中的包结构一一对应,...
使用 TypeScript 创建 Koa 服务器
概述尽管使用 NodeJS 搭建 HTTP 服务器早已是 Web 开发者们的家常便饭,但结合时下最热门的 TypeScript 却能带来更棒的开发体验。今天,我们就来一起尝试将它们结合起来,快速搭建一个健壮的 Koa 服务。 Koa 基础环境搭建我们从 Koa 开始,它是一个轻量且富有表现力的 NodeJS Web 框架。 安装核心依赖安装 Koa 及其常用的中间件 (Middleware): 1npm install koa koa-bodyparser koa-json koa-logger koa-router 注意: koa-bodyparser、koa-json、koa-logger 和 koa-router 都属于 Koa 的中间件。 编写基础 Koa 代码首先,创建 src 目录用于存放源代码,并在其中创建 index.js 文件: 12src└── index.js 基础 Koa 服务 (index.js): 123456789101112131415161718192021222324252627import Koa from 'koa...
NVM 的安装及使用
NVM 是一个非常方便的 Node.js 包管理工具,可以实现在 Node.js 各个不同版本之间自由地进行切换。下面介绍用 root 权限安装 NVM 工具。到 2021 年 7 月,NVM 的最新版本为 v0.39.1。 Linux 安装 NVMGitHub 地址:https://github.com/nvm-sh/nvm 1. 下载包12cd /usr/localwget --no-check-certificate https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz 2. 解压包1tar -xvf v0.39.1.tar.gz 在这里拿到文件的安装目录,放哪里无所谓。 3. 配置 bashrc 文件将 export NVM_DIR="/usr/local/nvm-0.39.1" 改成自己的目录。 123456# 编辑文件vim ~/.bashrcexport NVM_DIR="/usr/local/nvm-0.39.1"[ -s "$NV...
自定义 npm 包发布及下载
封装 npm 包上传到 npmjs.com定义 package.json12345678910111213141516{ "name": "logger-server", // 会被当作包名存在,不可与现有 npm 仓库的包名重复(例如已经有了 log4js,这里就不能叫 log4js) "version": "1.0.0", // 打版本标签 "private": true, // 这个字段可以防止代码被公开发布 "description": "日志自定义封装", "main": "index.js", "author": "xiaowu", "repository": { // 可不配 "type": "git"...
Web 开发通用代码记录
结合 Koa 写出流文件/图片到前端/浏览器1npm i fs-extra mime-types axios 读取本地文件写回前端123const localPath = path.join(__dirname, '../..', 'pic/not_found.png');ctx.type = mime.lookup(localPath);ctx.body = fs.readFileSync(localPath); 读取外部链接流文件写回前端12345678import mime from 'mime-types';const response = await axios({ url, responseType: 'stream',});ctx.type = mime.lookup(url);ctx.body = response.data; 读取外部链接流文件并写入本地再返回前端123456789101112131415161718import fs...
解决 Could not find any Visual Studio installation to use 的问题
参考链接: https://github.com/nodejs/node-gyp/issues/2203 https://stackoverflow.com/questions/57541402/node-gyp-configure-got-gyp-err-find-vs/63311413#63311413 https://www.jianshu.com/p/e2f12fab2b78 Node 版本 12.22,Windows 10 执行 npm install 报错信息如下 错误信息123456789101112131415161718192021222324252627282930313233gyp ERR! find VSgyp ERR! find VS msvs_version not set from command line or npm configgyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Promptgyp ERR! find VS checking VS2017 (1...
记录 K8s 环境下结合 Alinode 的使用
alinode官方地址:https://help.aliyun.com/product/60298.html?spm=a2c4g.60418.0.0.710343961QetaC 介绍 阿里官方提供的nodejs性能平台面向所有 Node.js 应用,提供 性能监控、安全提醒、故障排查、性能优化 等服务的整体性解决方案,尤其适合业务发展迅速、应用发布频繁、流量上升明显的 Node.js 应用。 Node.js 性能平台特别适合业务发展迅速、应用发布频繁、流量上升明显的 Node.js 应用。 平台全部功能免费使用 Node.js性能平台使用指南https://github.com/aliyun-node/Node.js-Troubleshooting-Guide/blob/master/0x04_%E5%B7%A5%E5%85%B7%E7%AF%87_Node.js%20%E6%80%A7%E8%83%BD%E5%B9%B3%E5%8F%B0%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.md 使用创建应用 登录阿里云官网 https://www.al...
Spring Cloud Gateway核心指南:从路由、断言到全局过滤器
引言在现代微服务架构中,API网关扮演着至关重要的角色,它作为所有服务的统一入口,负责请求路由、安全认证、流量控制和监控等关键任务。Spring Cloud Gateway是Spring官方推出的第二代网关框架,基于Spring 5、Spring Boot 2和Project Reactor构建,采用非阻塞的响应式编程模型,相比于第一代的Zuul,性能更优,功能也更为强大。本文将从核心概念入手,详细介绍Spring Cloud Gateway的路由、断言、过滤器等核心功能,并提供实践配置,帮助你快速掌握并应用于项目中。 为什么需要API网关?在微服务架构中,网关是整个系统的“守门神”,它统一了服务入口,简化了客户端的调用逻辑。其核心功能主要包括: 请求路由 (Request Routing): 根据请求的路径、域名等信息,将请求智能地转发到后端的具体微服务。 权限控制 (Authentication & Authorization): 在请求到达业务服务之前,集中完成用户认证和权限校验,实现安全拦截。 限流熔断 (Rate Limiting & Circuit ...
关于 FeignClient 注解中的 contextId
contextId 的使用一般是调用同一个服务,但是分多个接口 比如调用同一个 member 服务可以通过 contextId 来区分开,否则就会报错 bean 冲突 12345678/** * @author 小五 */@FeignClient(contextId = "MemberAFeign", value = ServiceNameConstants.MEMBER_SERVICE, fallbackFactory = MemberFeignAFallbackFactory.class)public interface MemberAFeign { ...} 12345678/** * @author 小五 */@FeignClient(contextId = "MemberBFeign", value = ServiceNameConstants.MEMBER_SERVICE, fallbackFactory = MemberFeignBFallbackFactory.cla...
