文章
已发布的全部长文。
40 行代码实现精简版 koa
发布于更新于当我们在深入学习一个框架或者库时,为了了解它的思想及设计思路,也为了更好地使用和避免无意的 Bug,有时很有必要研究源码。对于 koa 这种极为简单,而应用却很广泛的框架/库更应该了解它的源码。
日志的收集
发布于更新于日志收集笔记:filebeat、IOPS、日志对 CPU 与内存的影响等要点,附一段在 class / extends 小节下用原型链实现继承的 JavaScript 示例。
如何写一个 C 扩展
发布于更新于大家好,我是山月。 我还有工作的时候,据我同事说,他作为一个 Node 开发者去字节跳动面试时,面试官问到: 你写过 C++ 的扩展吗? 自此之后,他再也没有面试过 Node,前几天听闻他的消息时,他的 title 已变成前端开发工程师,当他再次大厂面试时,对以前的 Node 经验闭口不提。 今天将学习 node 中的 napi , 并从
我是如何高效地组织 npm scripts
发布于更新于众所周知,一个 Javasript 项目的脚本类工具,可以使用 package.json 中的 scripts 字段来组织,简单来说,这就是 npm script 。 最典型最常用约定俗成的一个是 npm start ,用以启动项目: 约定俗成的还有很多,如下所列 + npm install + npm test + npm publis
Node 做服务端开发的那些事儿
发布于更新于Node 做服务端开发时,你要了解的这些事 + $1 + Node实践语法篇: 当导入一个 module 时都做了什么 + $1 + $1 + $1 + $1 + $1 + $1 TODO: + $1 TODO: + $1 + $1 TODO: + $1 TODO: + $1 + $1 + $1 TODO: + $1 TODO:
在 Node 中引入一个模块时发生了什么
发布于更新于(function(exports, require, module, __filename, __dirname) { // 所有的模块代码都被包裹在这个函数中 const fs = require('fs') const _ = require('lodash') }); js require('internal/modules/cj
Node 服务端框架路由解析
发布于更新于大家好,我是山月。在上篇文章介绍了 HTTP 报文及简单的服务端框架要素,如如何接受请求参数等。这篇文章介绍另一个常见的主题:路由。 最简单的路由可使用 req.url 进行路由分发不同的逻辑,代码如下所示。 但是对于一个非Demo式的页面,业务逻辑都堆在一起,这显得太为简陋。 作为一个能够在生产环境使用,较为复杂的路由至少能够解析以下路
Stream
发布于更新于1. 服务器中的 HTTP Request 1. 客户端中的 HTTP Response 1. 标准输出 stdout + destroy + finish + error + WritableState / + needDrain + buffered + Symbol(KHandler) + res._removeTE / res.c
Stringify: Node 服务端序列化及反序列化优化
发布于更新于> https://github.com/fastify/fastify/blob/main/docs/Validation-and-Serialization.md fast-json-stringify https://npm.devtool.tech/json-stringify-safe 在服务端向客户端发送数据时,需要把梳理好的
Node 应用中的单元测试
发布于更新于新增或迭代功能时,用 BDD/TDD 思路配合 assert/chai、mocha 或 jest 组织用例,并用 nyc、codecov 查看覆盖率与 API 测试。
在 VS Code 中调试 nodejs
发布于更新于大家好,我是山月。 不啰嗦,直接开始。 由于 VSCode 内置 Node 调试器,调试 Node 极其简单,遵循以下步骤 1. 在 ToolBar 中找到 Run And Debug 按钮并点击,或直接 <Command+Shift+D> 打开调试 1. 在调试面板顶测选择 Run Current File 1. 点击绿色调试小按钮,开
零基础可操作的 Node.js 入门学习指南:从新手到专家的完整路线图
发布于更新于全面的 Node.js 学习指南,涵盖前端工具链、服务器开发、核心模块详解、源码阅读推荐和完整学习路线图,助你从零基础成为 Node.js 专家
NPM 包选择完全指南:7 个优质轮子筛选平台与 API 详解
发布于更新于深度解析 npmjs、npms.io、bundlephobia 等 7 个平台的 API,从代码质量、安全性、维护性多维度筛选高质量 NPM 包
PostGIS 小记
发布于更新于两个月 GIS 项目里的 PostGIS 笔记:WKT/SRID 术语、Geometry 类型,并建议配合 shapely、turf 与 GeoJSON 学。
邮件发送中的限流算法:漏桶与令牌桶详解
发布于更新于深入解析限流算法中的漏桶算法和令牌桶算法,包含 Redis 实现方案、Race Condition 解决方案,以及在邮件发送服务中的实际应用案例
Redis 实战应用:7 种核心使用场景深度解析
发布于更新于深入分析 Redis 在实际项目中的 7 种核心应用场景:缓存策略、Session 管理、消息队列、去重过滤器、分布式锁、限流控制和分布式 WebSocket。通过具体代码示例展示每种场景的实现方式、注意事项和最佳实践。
桃花开了:北京赏花回忆与人生感悟
发布于更新于从颐和园初见山桃、听大妈讲花名,玉渊潭樱花季改划船,引用人面桃花句,写到离京后对花期两周易逝的感怀。
向日葵:寻找北京公园里缺失的花海
发布于更新于北京的公园里郁金香、牡丹、荷花随处可见,却难觅童年记忆中大片的向日葵花田,写我对向日葵的偏爱与寻找。
日落:石景山办公室的西山夕阳
发布于更新于搬至石景山二十层后窗外即是西山,按北京五月十五日 18:42 的落日时间设闹钟,记录晴好或雨后佛光般的夕阳。
JavaScript 在线练习平台完全指南:5 个最佳代码实验工具推荐
发布于更新于详细介绍 Chrome DevTools、CodePen、CodeSandbox、StackBlitz 等主流在线 JavaScript 代码练习平台,涵盖 ES6/DOM API、CSS、React/Vue 项目和 Node.js 开发的完整学习方案。