![](https://img-blog.csdnimg.cn/20210926105223176.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Node.js
文章平均质量分 75
Node.js
__畫戟__
前端。知之为知之,不知为不知
展开
-
【Nodejs】事件循环机制
1. timer 阶段:处理 setTimeout、setInterval 的回调,由 poll 阶段控制2. I/O callbacks 阶段:处理系统级别的回调。eg: TCP 连接失败的回调…3. idle, prepare 阶段:仅 Node 内部使用,可以忽略4. poll 阶段:处理 I/O 操作的回调;5. 事件循环空闲时,会在此阶段暂停,以等待新的回调加入6. check 阶段:执行 setImmediate 的回调7. close callbacks 阶段:执行关闭请求的回调。转载 2023-06-09 10:15:29 · 1139 阅读 · 0 评论 -
webpack 实现 BannerWebpackPlugin
BannerWebpackPlugin 插件用于给打包产物头部添加注释文本原创 2023-05-25 13:54:13 · 221 阅读 · 0 评论 -
webpack 实现 CleanWebpackPlugin
手写CleanWebpackPlugin,用于删除/清理构建文件夹。原创 2023-05-25 01:47:16 · 255 阅读 · 0 评论 -
webpack 实现 CopyWebpackPlugin
CopyWebpackPlugin 将已经存在的单个文件或整个目录复制到构建目录。原创 2023-05-25 00:52:48 · 1117 阅读 · 0 评论 -
package-cli-service,为构建发布npm包提供完整的工作流
【package-cli-service】为构建发布 npm 包的全流程提供了完整的工作流,。它是构建于rollup、 webpack之上的。它包含了:一个针对绝大部分应用优化过的内部的 rollup 配置;它提供了 serve-example、build-example、lint、fix、analyzer、build 、pub 、serve-storybook、build-storybook 等命令原创 2023-04-10 22:00:50 · 327 阅读 · 0 评论 -
create-package-tools,构建 npm 包,支持react、vue、js
create-package-tools 是创建 package 项目的cli,支持react、vue、js。它的 CLI 服务 package-cli-service 为构建发布 npm 包的全流程提供了完整的工作流原创 2023-04-10 21:47:19 · 96 阅读 · 0 评论 -
webpack 编写插件
webpack 插件由以下组成:一个 JavaScript 命名函数或 JavaScript 类。在插件函数的 prototype 上定义一个 apply 方法。指定一个绑定到 webpack 自身的事件钩子。处理 webpack 内部实例的特定数据。功能完成后调用 webpack 提供的回调。原创 2023-02-01 21:21:36 · 491 阅读 · 0 评论 -
tapable详解
这个小型库是 webpack 的一个核心工具,但也可用于其他地方, 以提供类似的插件接口。 在 webpack 中的许多对象都扩展自 Tapable 类。 它对外暴露了 tap,tapAsync 和 tapPromise 等方法, 插件可以使用这些方法向 webpack 中注入自定义构建的步骤,这些步骤将在构建过程中触发。原创 2023-01-31 19:58:48 · 448 阅读 · 0 评论 -
一个终端同时运行多条Nodejs命令
一个终端同时运行多条Nodejs命令原创 2022-05-17 20:36:47 · 1050 阅读 · 0 评论 -
如何自定义 conventional-changelog
如何自定义 conventional-changelog首先还得感谢 https://juejin.im/post/5d27f84a6fb9a07ed064ddf1 这篇文章。教会了我很多东西。这篇文章的作者还写了一个 conventional-changelog-angular 的预设扩展项目地址 。正是这个项目让我搞明白了怎么自定义。自定义的关键,显然就在根目录的 changelog-option.js 文件,观察这个文件后,发现正是这个文件定义了哪些 git commit 要写入更新日志,以及生转载 2022-04-14 22:41:35 · 2400 阅读 · 0 评论 -
Node.js 高级篇(六):手把手教你使用和理解 Multer 实现文件上传,包懂 O(∩_∩)O~
在Web开发中,文件上传是一个非常常见、非常重要的功能。本文将介绍如何用 Node.js 处理文件上传。Multer 是一个 node.js 中间件,用于处理multipart/form-data类型的表单数据,它主要用于上传文件。为了提高效率,它被写在了busboy的上面。原创 2022-04-09 00:10:49 · 1842 阅读 · 1 评论 -
Node.js 高级篇(五):实现 cookie 身份验证
cookie-session 是一个简单的基于 cookie 的会话中间件。使用 cookie 可以通过两种主要方式存储用户会话:在服务器上或在客户端上。此模块将客户端上的会话数据存储在 cookie 中,而诸如express-session之类的模块 仅将客户端上的会话标识符存储在 cookie 中,并将会话数据存储在服务器上,通常存储在数据库中。原创 2022-04-05 23:24:05 · 3556 阅读 · 0 评论 -
Node.js 高级篇(四):实现 token 身份验证
Token 是在服务端产生的。如果客户端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给客户端。客户端可以在每次请求的时候带上 Token 证明自己的合法地位原创 2022-04-05 14:32:00 · 2253 阅读 · 7 评论 -
Node.js 高级篇(三):Mongoose 增删改查
一、mongoose 介绍mongoose是在node.js 异步环境下对mongodb 进行便捷操作的对象模型工具。mongoose是NodeJS 的驱动,不能作为其他语言的驱动。Mongoose 有两个特点1、通过关系型数据库的思想来设计非关系型数据库2、基于mongodb模块 驱动,简化操作二、mongoose 的安装以及使用2.1 安装npm install mongoose --save2.2 引入mongoose并连接数据库const mongoose = requir原创 2022-04-03 23:53:54 · 2094 阅读 · 1 评论 -
Node.js 高级篇(二):Node中的事件循环和异步API
单线程编程会因阻塞I/O导致硬件资源得不到更优的使用。多线程编程也因为编程中的死锁、状态同步等问题让开发人员头痛。Node在两者之间给出了它的解决方案:利用单线程,远离多线程死锁、状态同步等问题;利用异步I/O,让单线程远离阻塞,以好使用CPU。实际上,node只是在应用层属于单线程,底层其实通过libuv维护了一个阻塞I/O调用的线程池。原创 2022-04-03 12:13:22 · 365 阅读 · 0 评论 -
Node.js 高级篇(一):Node.js 中间件机制
在 `Node.js` 中,中间件主要是指封装所有 `Http` 请求细节处理的方法。一次 `Http` 请求通常包含很多工作,如记录日志、`ip` 过滤、查询字符串、请求体解析、`Cookie` 处理、权限验证、参数验证、异常处理等,但对于 `Web` 应用而言,并不希望接触到这么多细节性的处理,因此引入中间件来简化和隔离这些基础设施与业务逻辑之间的细节,让开发者能够关注在业务的开发上,以达到提升开发效率的目的。原创 2022-04-03 12:09:15 · 871 阅读 · 0 评论 -
Node.js 基础篇(十七):基于 Socket.IO 模块的 Socket 编程
Socket.IO 是一个库,可以在客户端和服务器之间实现低延迟、双向和基于事件的通信。原创 2022-03-22 23:18:49 · 574 阅读 · 2 评论 -
Node.js 基础篇(十六):基于 WebSocket 模块的 Socket 编程
WebSocket原创 2022-03-22 11:01:03 · 4877 阅读 · 0 评论 -
Node.js 基础篇(十五):基于 Net 模块的 Socket 编程
什么是Socket?网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。原创 2022-03-20 22:38:11 · 1065 阅读 · 0 评论 -
Node.js 基础篇(十四):Express路由
Express路由原创 2022-03-03 23:13:54 · 361 阅读 · 0 评论 -
Node.js 基础篇(十三):Express快速入门
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。原创 2022-02-27 23:09:11 · 200 阅读 · 0 评论 -
【create-modules-tools】一款:读取远程仓库模板,快速创建代码模块的脚手架工具
读取远程仓库模板,快速创建代码模块的脚手架工具原创 2022-02-20 18:42:40 · 184 阅读 · 0 评论 -
手把手教你使用nodejs编写一个【使用远程仓库模板,快速创建项目模块】的cli(命令行)
在工作过程中,很多时候我们会遇到一些很相似的需求,这时候我们会进行【搬砖】。这时候我们经常会复制一份相似的代码,改一改就成了。但是这样有两个问题:首先,从其他业务模块复制过来的代码中需要删删减减,有些繁琐,效率较低;其次,即便复制的是一个基础模板代码,也会面临手动 copy 的低效问题;还有,一般如果同事之间用一个代码模板库,需要将之 git clone 至本地磁盘,一般手动 copy 很少会 git pull 代码,这样就会造成代码模块版本滞后。原创 2022-02-20 18:05:05 · 9616 阅读 · 0 评论 -
Node.js 基础篇(十二):搭建一个简单的静态资源服务
Node.js 搭建一个简单的静态资源服务原创 2022-02-16 11:21:17 · 229 阅读 · 0 评论 -
Node.js 基础篇(十一):内置对象 readline 逐行读取
Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。原创 2022-02-14 23:22:06 · 2786 阅读 · 0 评论 -
Node.js 基础篇(十):内置对象 zlib 压缩
zlib 压缩原创 2022-02-13 00:12:39 · 849 阅读 · 2 评论 -
Node.js 基础篇(九):fs.watchFile
目录fs.watch 监视 `filename` 的变化fs.watchFile 监视 `filename` 的变化fs.watch 监视 filename 的变化fs.watch(filename[, options][, listener])filename <string> | <Buffer> | <URL>options <string> | <Object>persistent <boolean> 指示只要正在原创 2022-02-12 23:20:29 · 2466 阅读 · 0 评论 -
Node.js 基础篇(八):内置对象 fs(文件系统)
Node.js 文件系统原创 2022-02-10 23:38:43 · 1211 阅读 · 0 评论 -
Node.js 基础篇(七):内置对象 Events(事件触发器)
Node.js 的大部分核心 API 都是围绕惯用的异步事件驱动架构构建的,在该架构中,某些类型的对象(称为"触发器")触发命名事件,使 `Function` 对象("监听器")被调用。所有触发事件的对象都是 `EventEmitter` 类的实例。 这些对象暴露了 `eventEmitter.on()` 函数,允许将一个或多个函数绑定到对象触发的命名事件。 通常,事件名称是驼峰式字符串,但也可以使用任何有效的 JavaScript 属性键。原创 2022-02-10 22:47:07 · 218 阅读 · 0 评论 -
Node.js 基础篇(六):内置对象 http / https(3)爬虫(网络蜘蛛)
Node.js 爬虫,自动获取网页内容原创 2022-02-09 23:34:32 · 733 阅读 · 0 评论 -
Node.js 基础篇(四):内置对象 http / https(1)
http.createServer;http.get;http.request原创 2022-02-07 19:14:30 · 888 阅读 · 0 评论 -
Node.js 基础篇(五):内置对象 http / https(2)跨域
同源策略会隔离不同源的 DOM、页面数据和网络通信,进而实现 Web 页面的安全性。但很多时候我们需要跨域资源共享,进行安全地跨域操作,下面我们讲解目前主要采用的集中解决跨域的方式。* josnp;* 跨域资源共享(CORS);* 中间件代理跨域;原创 2022-02-09 00:12:03 · 1033 阅读 · 0 评论 -
Node.js 基础篇(三):调试指南
本指南将帮助你开始学习调试 Node.js 程序和脚本。当使用 --inspect 开关符启动检查器时,一个 Node.js 进程开始侦听调试客户端。原创 2022-01-28 22:46:56 · 1968 阅读 · 1 评论 -
Node.js 基础篇(二):内置对象 querystring 查询字符串
querystring 模块提供了用于解析和格式化网址查询字符串的实用工具原创 2022-01-28 10:59:04 · 1333 阅读 · 0 评论 -
Node.js 基础篇(一):内置对象 URL
Node.js url 模块提供用于网址处理和解析的实用工具原创 2022-01-27 23:31:59 · 1586 阅读 · 0 评论 -
Mac下通过 【n】 管理多个版本的 nodejs
Node.js 可谓风光无限,但是版本管理很是头大,不同的项目用不同的Node版本,往往Node版本间不互相兼容,所以经常需要在不同的Node版本中切换。Mac下你同样可以通过nvm来管理Node版本,今天介绍另一个 n 模块来管理Node版本。n 介绍n 是Node的一个模块,所以安装非常方便,而且作者是Express框架的作者写的。安装既然是Node模块,直接通过npm安装全局。sudo npm install -g n常用命令查看帮助n help列出所有的Node 版本n转载 2022-01-24 23:59:57 · 641 阅读 · 0 评论 -
手把手教你使用nodejs编写cli(命令行)——拉取远程仓库作为代码模板
上一章和大家分享了通过 fs 模块读写ejs 模板的方式创建 CLI 工具,这一章我们来讲解如果将远程仓库的代码做为 CLI 工具的代码模板。原创 2022-01-03 20:19:54 · 11149 阅读 · 2 评论 -
手把手教你使用nodejs编写cli(命令行)
为什么要坚持写作?写作就是求甚解的过程。在前端开发工作中,我们经常会使用到webpack-cli、Vue-cli、create-react-app等cli工具,在实际业务开发中我们也是有很多的cli需求来帮助我们实现 新工程或模块的快速创建。cli的本质就是运行node脚本原创 2021-12-31 01:25:58 · 10988 阅读 · 0 评论 -
解决【npm version patch - git working directory not clean】
问题场景:当你执行npm version patch时可能会遇到以下错误:原因:因为 README.md 文件和 package.json 以及构建的文件需要在发布之前提交解决办法:git add .git commit -m "publish to npm"npm version patch...原创 2021-10-04 21:57:10 · 3806 阅读 · 0 评论 -
剖析npm依赖管理
我们的项目可能依赖一个或多个外部依赖包,根据依赖包的不同用途,我们将他们配置在下面几个属性下:dependencies、devDependencies、peerDependencies、bundledDependencies、optionalDependencies。3.1 dependenciesdependencies指定了项目运行所依赖的模块,开发环境和生产环境的依赖模块都可以配置到这里,例如"dependencies": { "lodash": "^4.17.13", ..转载 2021-09-25 22:41:04 · 2540 阅读 · 0 评论