Node.js
文章平均质量分 87
Node
油墨香^_^
想要敲出漂亮的代码, 就要暴露在全世界的眼睛下!
展开
-
其他内容:Nodejs 中的中间件
中间件是Node.js和Express应用中一个非常强大的功能,它们允许你以模块化和可重用的方式构建应用,同时保持代码的清晰和组织性。可以接受两个参数:一个可选的路径字符串和一个回调函数(即中间件函数)。在Express中,你可以使用。原创 2024-08-07 08:51:29 · 226 阅读 · 0 评论 -
Volta:更好用的 node 版本管理工具
它专为现代 JavaScript 开发工作流而设计,能够自动处理工具版本的切换和依赖关系管理,确保开发者始终使用正确的工具版本。团队成员可以使用 Volta 确保他们的开发环境与项目配置一致,避免了由于工具版本不同而导致的“运行在我机器上没问题”的问题。在 CI/CD 管道中使用 Volta,可以确保构建和部署过程中使用正确的工具版本,避免由于版本不一致导致的构建失败。Volta 通过锁定项目的工具版本,避免了工具版本不一致导致的问题,提高了项目的稳定性和可维护性。转载 2024-08-06 10:39:04 · 275 阅读 · 0 评论 -
Node 批量写入文件
如果你需要批量写入文件,可以使用Node.js的fs模块来实现。你可以通过循环或迭代的方式,针对每个需要写入的文件执行写入操作。在上述代码中,我们定义了一个函数,它接受文件路径(filePath)和要写入的数据(data)作为参数。在函数内部,我们使用方法将数据写入文件。然后,我们定义了一个数组,其中包含了要写入的多个文件的信息。每个文件的信息包括文件路径和要写入的数据。接下来,我们使用forEach方法遍历数组,并针对每个文件调用函数进行写入操作。转载 2024-08-01 14:28:05 · 28 阅读 · 0 评论 -
(实战篇) Vue + Node.js 从 0 到 1 实现自动化部署工具
将上面零碎的知识点汇聚到一起就是 zuo-deploy 的实现,代码写的比较随意,欢迎 star、fork、提改进 PR!转载 2024-07-31 09:07:49 · 52 阅读 · 0 评论 -
NodeJS进阶开发、性能优化指南
相信对于前端同学而言,我们去开发一个自己的简单后端程序可以借助很多的nodeJs的框架去进行快速搭建,但是从前端面向后端之后,我们会在很多方面会稍显的有些陌生,比如等等NodeJs后端的知识,在这里为大家来分析一下这些场景与具体实现。转载 2024-05-29 09:06:00 · 22 阅读 · 0 评论 -
3 款非常实用的 Node.js 版本管理工具
为了能够对 Node.js 版本进行版本管理,我整理了 3 款非常实用的 Node.js 版本管理工具,让大家能够自由的切换本地环境不同的 Node.js 版本。⭐ Github stars: 60K+nvm[2] 是一款 Node.js 版本管理工具,允许用户通过命令行快速安装、切换和管理不同的 Node.js 版本。(图片来自:github[3])nvm 只适用于 macOS 和 Linux 用户的项目,如果是 Windows 用户,可以使用 nvm-windows[4] 、nodist[5] 或 nv转载 2024-05-27 09:36:55 · 2372 阅读 · 0 评论 -
5 种高级 NodeJS 技术
通过使用 tryCatchFn 包装控制器函数,您可以确保自动捕获这些函数中引发的任何错误并将其传递给全局错误处理程序,从而无需单独添加 try-catch 块。在全局错误处理程序中,您可以根据错误对象的 statusCode、status 和 message 属性来格式化错误响应。如果在包装函数内发生错误,则使用 catch 方法捕获错误,并将错误传递到下一个函数以由全局错误处理程序处理。总体而言,这种方法通过将错误处理集中在一个位置来简化错误处理,从而更轻松地在应用程序中维护和自定义错误响应。转载 2024-05-10 08:43:14 · 18 阅读 · 0 评论 -
5 种高级 NodeJS 技术
通过使用 tryCatchFn 包装控制器函数,您可以确保自动捕获这些函数中引发的任何错误并将其传递给全局错误处理程序,从而无需单独添加 try-catch 块。在全局错误处理程序中,您可以根据错误对象的 statusCode、status 和 message 属性来格式化错误响应。如果在包装函数内发生错误,则使用 catch 方法捕获错误,并将错误传递到下一个函数以由全局错误处理程序处理。总体而言,这种方法通过将错误处理集中在一个位置来简化错误处理,从而更轻松地在应用程序中维护和自定义错误响应。转载 2023-08-09 09:39:10 · 54 阅读 · 0 评论 -
前端自动化部署&npm发包初探
1. 文件解压缩2. 执行npm scripts3. 执行常见Linux命令.......// 执行shell脚本命令conn.end();});// 进入指定文件夹解压缩文件到当前文件夹 并删除压缩包// 执行自定义脚本});以上就是整个deploy-helper的执行过程的关键流程,它可以满足将静态文件打包上传至目标服务器的指定目录,并可以在此之后回调执行一些用户自定义指令。但是他目前还有很多缺陷,比如:对于shell脚本的执行结果没有进行判断,不知道是否执行成功。转载 2023-04-06 09:22:38 · 394 阅读 · 0 评论 -
在 Node.js 中如何通过子进程与其他语言(Go)进行 IPC 通信
(https://linux.die.net/man/2/sendmsg[9])这两个函数,分别来实现对一个 socket 进行数据读取和发送操作,同时在 Go 的官方提供的。来加载要执行的子进程程序(deps/uv/src/unix/process.c#L382[7]) 对于父进程在 fork 之前打开的文件,比如 socket 等,由于在。函数会返回子进程的进程 id,在子进程中,会返回 0,所以判断如果返回 0,那就执行子进程中的一些初始化逻辑。可以看出,这里会迭代 stdio,如果其中包含。转载 2023-04-04 09:44:40 · 277 阅读 · 0 评论 -
使用 File System Access API 让浏览器拥有操作本地文件的能力
本文主要介绍了的基本使用,包括如何获取文件和目录,以及如何操作文件和目录。转载 2023-03-21 09:35:15 · 1908 阅读 · 0 评论 -
2022年我的面试万字总结(Node、webpack、性能优化)
Node.js是一个基于 Chrome V8 引擎的JavaScript运行环境,这个环境就好比是服务器上的浏览器(虽然不是很恰当),但正是因为有了它才使得 js 变成了一门后台语言。Node在处理高并发,I/O密集场景有明显的性能优势一般来说,node 主要应用于以下几个方面:第一点对于前端同学来说应该是重中之重了,什么工程化、自动构建工具就是用 node 写出来的,它是前端的一大分水岭之一Node.js中宏任务分成了几种类型,并且放在了不同的task queue(事件队列)里。不同的task queue转载 2023-02-25 10:04:00 · 211 阅读 · 0 评论 -
为什么 NodeJS 是构建微服务的最佳选择?
微服务是一种应用架构,它将每个应用功能都放在自己的服务中,与其他服务隔离。这些服务是松散耦合的,可独立部署。这种架构的出现是为了解决旧的 Web 应用开发的单体方法。在单体软件中,所有的东西都是作为一个单元构建的,所有的业务逻辑都被归入一个广泛的应用。这种方法使更新代码库的过程变得复杂化,因为它影响到整个系统,即使是最小的代码改动也需要构建和部署整个软件的新版本。此外,哪怕你只想扩展应用的某个特定功能,却需要扩展整个应用来实现它。转载 2023-03-01 09:53:41 · 235 阅读 · 1 评论 -
用 Node.js 手写 WebSocket 协议
实时性较高的需求,我们会用 websocket 实现,比如即时通讯、游戏等场景。websocket 和 http 没什么关系,但从 http 到 websocket 需要一次切换的过程。这个切换过程除了要带 upgrade 的 header 外,还要带 sec-websocket-key,服务端根据这个 key 算出结果,通过 sec-websocket-accept 返回。响应是 101 Switching Protocols 的状态码。转载 2023-03-01 09:56:59 · 135 阅读 · 0 评论 -
Javascript如何实现对象扁平化
数组扁平化相信大家已经耳熟能详了,在被面试官问到如何实现你就偷着乐吧,但是相信有不少大佬在面试一些国内顶尖的大厂时,被面试官问到如何实现,笔者在学习过程中对此也感兴趣,让我们一起看看如何实现对象扁平化吧。转载 2023-03-28 10:04:50 · 411 阅读 · 1 评论 -
《大前端进阶 安全》系列 HTTPS详解(通俗易懂
本文已收录,欢迎 Star,持续更新💧HTTPS 的出发点是解决HTTP明文传输时信息被篡改和监听的问题。为了兼顾性能和安全性,使用了非对称加密+对称加密的方案。为了保证公钥传输中不被篡改,又使用了非对称加密的数字签名功能,借助CA机构和系统根证书的机制保证了HTTPS证书的公信力。《吐血整理》系列 大厂前端组件库工具集合(PC端、移动端、JS、CSS等)《大前端进阶 Node.js》系列 必知必会必问《大前端进阶 Node.js》系列 多进程模型原理(字节跳动被问)转载 2023-03-02 11:21:01 · 230 阅读 · 0 评论 -
前端进阶高薪必看-JS篇(上)
在JavaScript中,基本类型是没有属性和方法的,但是为了便于操作基本类型的值,在调用基本类型的属性或方法时 JavaScript 会在后台隐式地将基本类型的值转换为对象a.length;// 3// "ABC"复制代码在访问时,JavaScript 将'abc'在后台转换成,然后再访问其length属性。JavaScript也可以使用Object复制代码也可以使用valueOf复制代码if (!a) {复制代码答案是什么都不会打印,因为虽然包裹的基本类型是false,但是false。转载 2023-03-02 11:20:18 · 83 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 P6必备脚手架/CI构建能力(下)
本文已收录(怪怪整理了大前端知识技能树在 GitHub),欢迎 Star,持续更新💧✨ 怪怪我人懒话不多,本期代码和图有点多,小伙伴们可以直接获取源代码,对照着源代码,自己理一遍思路,实现一遍。相信正在看文章的多数小伙伴,每天都会用脚手架去做项目,去打包,发布。怪怪觉得了解并自己实现整个前端工程化的流程,是十分必要并且极具意义的一件事~~近期原创传送门,biubiubiu~~~《大前端进阶 Node.js》系列 P6必备脚手架/CI构建能力(上)转载 2023-03-02 11:22:17 · 87 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 多进程模型底层实现(字节跳动被问)
本文已收录,欢迎 Star,持续更新💧Node 利用 master/worker 模式来利用多核资源,利用 SO_REUSEADRR 与句柄(文件描述符)传递来使多个进程同时监听同一个端口,提高吞吐量。对进程、线程、cpu 有认知是最基本的,这样写项目才能对自己的每一行代码了然于心。本文仅算是入门贴,真正的 Node 内核有待大家一一深入学习,如果对某一块有特别的兴趣可以在下面留言,直接加群来讨论,怪怪我等你!《吊打面试官》系列 Node.js 必知必会必问。转载 2023-03-02 11:24:11 · 109 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 必知必会必问(面试高频)
基础上做了改进,通过对文件描述符上的事件状态来进行判断,当用户进程调用了select,那么整个进程会被block,而同时,kernel会「监视」所有select负责的socket,当任何一个socket中的数据准备好了,select就会返回,这个时候用户进程再调用read操作,将数据从kernel拷贝到用户进程。引擎去处理,经过一系列的转换处理,最终呈现到我们的屏幕上,之前有看过 Chrome 团队 Steve Kobes 的一个分享,从最底层出发分析了浏览器的一个渲染过程,后面找时间再跟大家分享。转载 2023-03-02 11:24:35 · 100 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 多进程模型底层实现(字节跳动被问)
进程其实是处于执行期的程序和相关资源的总称,里面包含了要执行的代码段,需要用到的文件,端口,硬件资源,很常见的一种说法是进程是资源分配的最小单位,这句话更直白的说就是,要运行某个可执行的代码段会需要某些资源,当这个代码段运行起来的时候,这些资源也必须被分配给他。你们之间就是一个单向的管道通信。我们试想,如果资源的分配和调度是 1:1 的关系,那意味着一个商店里在活动的人同一时间只能有一个,当你在拉客的时候,其他人不可以在店里,你在站台的时候,其他人也只能在一边候着,但其实你们都是用的同一家店铺的资源。转载 2023-03-02 11:24:23 · 103 阅读 · 0 评论 -
《吐血整理》系列 大厂前端必备工具集合(抓包、调试、Mock数据等等)
本文已收录,欢迎 Star,持续更新💧上面分享的这些工具,都是怪怪工作中经常用并且觉得还不错的工具。分享给大家,希望能给大家带来一些工作效率上的提升~~《大前端进阶 Node.js》系列 必知、必会、必问《大前端进阶 Node.js》系列 双十一秒杀系统(进阶必看)《大前端进阶 Node.js》系列 多进程底层原理(字节跳动被问)转载 2023-03-16 10:12:16 · 364 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 异步非阻塞(同步/异步/阻塞/非阻塞/read/select/epoll)
本文已收录,欢迎 Star,持续更新这篇是基础,必要要先掌握,后面的理解起来才会有如鱼得水的感觉~这篇文章里,怪怪主要帮大家捋清了很多容易混淆的概念,并从操作系统的角度介绍了我们目前IO 的状况。阻塞非阻塞看进程状态。异步非异步看调用的特性。read 是同步非阻塞,可以看作是非阻塞 IO,但获取结果数据的方法是一种同步阻塞的方法,常用的就是上面讲的 epoll。PS:看过网上部分文章,都没讲在点上,理解这个东西需要从最初,最本质去理解它,你才会真正的懂这个架构!那 Node 如何异步非阻塞。转载 2023-03-16 10:15:30 · 285 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 P6必备脚手架/CI构建能力(上)
本文 cli 已发布至 npm 仓库,如下:PS:语言只是工具,架构才是核心~首先请出今天的主角,当当当当~~,低调奢华有内涵的脚手架 / CI 架构图 ❤,后面的分析都是基于这个结构图展开滴~转载 2023-03-17 09:32:02 · 270 阅读 · 0 评论 -
《大前端 基础组件》系列 80行实现一个网页水印npm包
Coding 应当是一生的事业,而不仅仅是 30 岁的青春饭本文已收录,欢迎 Star,持续更新网站浏览中,常常需要网页水印,来防止用户截图或者录屏暴露敏感信息后无法追踪用户来源。比如钉钉、飞书等软件,聊天背景会有你的花名。水怪怪今天手把手带你实现一个自定义水印的 npm 包,并发布至 npm 仓库。转载 2023-03-03 10:25:09 · 202 阅读 · 0 评论 -
50行实现Node.js多进程分页爬虫
Coding 应当是一生的事业,而不仅仅是 30 岁的青春饭本文已收录,欢迎 Star,持续更新Node 用来写爬虫还是挺方便的,网上大部分文章都是单进程爬取,抽下班时间写了个多进程爬虫,源码在文末~Node cluster 的简单用法、进程间通信对于一些简单的分页爬虫,能够自己立马实现superagent 的简单使用本文已收录,欢迎 Star,持续更新Node 多进程架构,缓解了 cpu 资源利用问题,在一些耗时的操作上,可以尝试多进程的方式来解决。转载 2023-03-03 10:23:14 · 414 阅读 · 0 评论 -
《吐血整理》系列 大厂前端组件库工具集合(PC端、移动端、JS、CSS等)
Coding 应当是一生的事业,而不仅仅是 30 岁的青春饭本文已收录,欢迎 Star,持续更新上一篇《吐血整理》系列 大厂前端必备工具集合(抓包、调试、Mock 数据等等)发布之后,很多小伙伴问怪怪有没有大厂前端开发工具组件库的集合,今天,它来了,它踏着七彩祥云来了!!!本文已收录,欢迎 Star,持续更新上一期的《吐血整理》系列 大厂前端必备工具集合(抓包、调试、Mock 数据等等),获得大家一致好评,于是怪怪我加班加点,写下了这一期。转载 2023-03-21 09:21:05 · 960 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 多进程模型底层实现(字节跳动被问)
Coding 应当是一生的事业,而不仅仅是 30 岁的青春饭本文已收录,欢迎 Star,持续更新字节跳动面试官问:Node.js 多进程模型,以及多进程监听同一端口的底层原理是如何实现滴?好朋友被字节跳动面试官这道题吊打了, 周末怪怪加班,写下这篇深入探究 Node.js 多进程架构的底层实现~ 纯干货,分享给大家!!!很多小伙伴对一些基础,特别是底层不是很了解,顺带也可以好好补一下底层原理的基础哈 ~彻底搞懂进程、线程、协程之间的关系彻底搞懂 Node.js 的多进程模型。转载 2023-03-17 09:34:45 · 134 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 必知必会必问(面试高频)
Coding 应当是一生的事业,而不仅仅是 30 岁的青春🍚本文已收录,欢迎 Star,持续更新💧P6 前端必备脚手架 /CI 构建能力,顺着怪怪的思路往下看,然后获取文章末尾的源码,跟着源码操作一遍,那样收获最大哦~本文 cli 已发布至 npm 仓库,如下:前端工程化中脚手架的整体设计与结构能够自己独立为企业订制一套前端脚手架尝试参与公司脚手架共建(你也可以参与部分前端基础建设的工作了哦)PS:语言只是工具,架构才是核心~这期纯干货,源代码在文末。转载 2023-03-17 09:33:07 · 81 阅读 · 0 评论 -
《大前端进阶 Node.js》系列 双十一秒杀系统(进阶必看)
Coding 应当是一生的事业,而不仅仅是 30 岁的青春🍚本文已收录,欢迎 Star,持续更新💧这篇 Node.js 的文章接水怪很用心,也很硬核,相信能看完的都有点东西!!!Node 生态已经越来越好,一些高性能的 Web 业务场景,是完全可以用 Node 来做的前端应该不止于前端,学习一些服务端的知识,不仅仅单方面的说是为了做一些全栈的系统,更多的是让现有的前端可以去做更多的事情,去尝试更多的可能能够独立去设计一些东西,可以是一个微型全栈的系统,也可以是前端工程化中某个环节的工具。转载 2023-03-16 10:14:03 · 274 阅读 · 0 评论 -
FileReader()读取文件、图片上传预览
FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。其中File对象可以是来自用户在一个元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的 DataTransfer对象,还可以是来自在一个htmlCanvasElement上执行mozGetAsFile()方法后返回结果。转载 2023-02-16 10:07:24 · 2570 阅读 · 0 评论 -
Vue + Node.js 从 0 到 1 实现自动化部署工具
将上面零碎的知识点汇聚到一起就是 zuo-deploy 的实现,代码写的比较随意,欢迎 star、fork、提改进 PR!转载 2023-02-14 10:58:11 · 178 阅读 · 0 评论 -
前端部署篇之如何使用 Docker 部署前端
使用docker部署前端最大的好处是隔离环境,单独管理:前端项目依赖于 Node v16,而宿主机无法满足依赖,使用容器满足需求前端项目依赖于 npm v8,而宿主机无法满足依赖,使用容器满足需求前端项目需要将 8080 端口暴露出来,而容易与宿主机其它服务冲突,使用容器与服务发现满足需求。转载 2023-02-20 10:14:25 · 668 阅读 · 0 评论 -
Node进阶-探究不在V8堆内存中存储的Buffer对象
二进制是计算机最底层的数据格式,字符串,数字,视频,音频,程序,网络包等,在最底层都是用二进制来进行存储。这些高级格式和二进制之间,都可以通过固定的编码格式进行相互转换。例如,C语言中int32类型的十进制整数(无符号),就占用32bit即4byte,十进制的3对应的二进制就是。字符串也是同理,可以根据ASCII编码规则或者unicode编码规则(如utf-8)等和二进制进行相互转换。总之,计算机底层存储的数据都是二进制格式,各种高级类型都有对应的编码规则和二进制进行相互转换。转载 2023-01-11 10:21:48 · 160 阅读 · 0 评论 -
Node.js 高级进阶之 fs 文件模块学习
文件操作是开发过程中并不可少的一部分,作为一名 Node.js 开发工程师更应该熟练掌握fs模块的相关技巧。Node.js 中的 fs 模块是文件操作的封装,它提供了文件读取、写入、更名、删除、遍历目录、链接等 POSIX 文件系统操作。与其它模块不同的是,fs 模块中所有的操作都提供了异步和同步的两个版本,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法。转载 2023-01-05 16:00:37 · 419 阅读 · 0 评论 -
简析 Node.js 特点与应用场景(让你更了解它)
如果你有一定的前端基础,比如;那么,Node.js能让你以最低的成本快速过渡成为一个全栈工程师(我称这个全栈为伪全栈,我认为的全栈也要精通数据库,不喜勿喷),从而触及后端和移动端的开发。当然,Node.js也不是万能的、也不是说学了它就可以完全取代后端的其他开发语言,它有自己的使命和擅长的应用领域。除此之外现在非常火热的,等很多数据层动态交互优先选用了Node.js,一些比较流行的打包工具也是如此;综上,为你为什么要学习它又增加了一大理由。Node.js。转载 2023-01-05 15:51:53 · 373 阅读 · 0 评论 -
Node事件循环系列——2、Timer 、Immediate 和 nextTick
当事件循环进入到 timers 阶段的时候,Node 会检查timers 堆中有没有过期的 timers/intervals,如果有,会依次执行 timer 的回调。您可能会想的,这个程序总是先打印settimeout,后打印setimmediate,因为过期timer回调会是在immediate之前被处理的。现在,当我们查看本文顶部的事件循环图时,可以看到当程序开始执行时,Node开始处理计时器。当程序启动时,上面的程序将设置一个1000毫秒的tmer,并记录执行回调所花费的时间。转载 2023-01-04 10:15:20 · 185 阅读 · 0 评论 -
Node.js 资源大全中文版
是发起维护的 Node.js 资源列表,内容包括:命令行工具、日志、调试、HTTP、构建工具、文件系统、模板、Web 框架、流程控制、文本、图片和数据校验等。转载 2022-09-30 11:47:59 · 445 阅读 · 0 评论 -
一套属于前端的版本控制系统
公司之前更新前端代码需要远程到服务器后,将对应打包好的项目代码复制到目录中去。在更新频繁的时候,中间所浪费的无用时间就变的很多,加上回退版本还要涉及到备份的操作,多服务器的时候还要记住密码账号等等等操作就会觉得繁琐。再加之人员众多,服务器的安全性也无法得到保障。遂计划开发出一套前端版本控制的解决方案。经过2020一整年,3个大版本的迭代,最终完成了正式的1.0版本。包括版本上传,切换,测试,上线,删除,备份等功能,很好的解决的公司内部问题。在这里分享出我自己的三个版本的思路(仅有思路以及部分代码)转载 2022-09-28 09:36:28 · 535 阅读 · 0 评论 -
Node.js 实现定时每天发消息—nodemailer模块
nodemailer是一个发送邮件npm包,我们可以使用它方便快捷的给任何人发送邮件。转载 2022-09-24 10:23:38 · 883 阅读 · 0 评论
分享