首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

Node.js源码学习——搭建阅读调试代码环境

前提条件 源码学习,是要建立在一定基础上的,就Node.js而言,要满足一下条件: 熟悉JavaScript语言 熟练Node.js服务端开发 熟悉C++语言 熟悉JS/C++调试 搭建步骤 如果满足以上条件...下载Node.js的github项目 阅读Node.js的README.md 初步弄清楚每个目录的文件作用 2....下载Node.js源码 git clone https://github.com/nodejs/node.git‘ 2..../configure --debug make -j4 此时Node执行文件已经构建出来,out/Debug/node 注意点:编译Node.js源码比较耗资源,笔者的Mac呼呼作响,且需要足够的磁盘空间...,笔者就遇到空间不足失败的情况,建议留有20G左右的空间; [空间不足,构建失败] Node.js编译产物截图: [Node.js构建产物截图] 3.

2.8K90

结合源码分析 Node.js 模块加载与运行原理

…… 本篇文章,就会结合 Node.js 源码,探究一下以上这些问题背后的答案。 1....Node.js 模块类型 在 Node.js 中,模块主要可以分为以下几种类型: 核心模块:包含在 Node.js 源码中,被编译进 Node.js 可执行二进制文件 JavaScript 模块,也叫...第三方模块:非 Node.js 源码自带的模块都可以统称第三方模块,比如 express,webpack 等等。...Node.js 源码结构一览 这里使用 Node.js 6.x 版本源码为例子来做分析。...如果我们想要对 Node.js 进行一些个性化的定制,则可以对源码进行修改,然后再运行编译,得到定制化的 Node.js 版本。这里以 Linux 平台为例,简要介绍一下 Node.js 编译流程。

3.2K10

【nodejs原理&源码赏析(4)】深度剖析cluster模块源码node.js多进程(上)

线程与进程 三. cluster模块源码解析 3.1 起步 3.2 入口 3.3 主进程模块master.js 3.4 子进程模块child.js 四. 小结 ?...概述 cluster模块是node.js中用于实现和管理多进程的模块。...常规的node.js应用程序是单线程单进程的,这也意味着它很难充分利用服务器多核CPU的性能,而cluster模块就是为了解决这个 问题的,它使得node.js程序可以以多个实例并存的方式运行在不同的进程中...关于cluster模块的用法和API细节,可以直接参考官方文档《Node.js中文网V10.15.3/cluster》。 二....三. cluster模块源码解析 源码中个别方法比较长,建议使用带有代码折叠的工具来看。

99420

前端-结合源码分析 Node.js 模块加载与运行原理

4、…… 本篇文章,就会结合 Node.js 源码,探究一下以上这些问题背后的答案。 1....Node.js 模块类型 在 Node.js 中,模块主要可以分为以下几种类型: 1、核心模块:包含在 Node.js 源码中,被编译进 Node.js 可执行二进制文件 JavaScript 模块,也叫...4、第三方模块:非 Node.js 源码自带的模块都可以统称第三方模块,比如 express,webpack 等等。...Node.js 源码结构一览 这里使用 Node.js 6.x 版本源码为例子来做分析。...如果我们想要对 Node.js 进行一些个性化的定制,则可以对源码进行修改,然后再运行编译,得到定制化的 Node.js 版本。这里以 Linux 平台为例,简要介绍一下 Node.js 编译流程。

2.2K20

从发布订阅模式入手读懂Node.js的EventEmitter源码

前面一篇文章setTimeout和setImmediate到底谁先执行,本文让你彻底理解Event Loop详细讲解了浏览器和Node.js的异步API及其底层原理Event Loop。...发布订阅模式在面试中也是高频考点,本文会自己实现一个发布订阅模式,弄懂了他的原理后,我们就可以去读Node.js的EventEmitter源码,这也是一个典型的发布订阅模式。...的EventEmitter Node.js的EventEmitter思想跟我们前面的例子是一样的,不过他有更多的错误处理和更多的API,源码在GitHub上都有:github.com/nodejs/node..._events就直接是那个函数了,而不是一个数组,在源码里面我们会多次看到对这个进行判断,这样写是为了提高性能。...在了解了原理后,还去读了Node.js的EventEmitter模块的源码,进一步学习了生产环境的发布订阅模式的写法。

82931

【nodejs原理&源码赏析(6)】深度剖析cluster模块源码node.js多进程(下)

四.跨进程通讯工具方法Utils 继续进行后续内容前,先来看一个独立的跨进程通讯工具,源码放在lib/internal/cluster/utils.js。 ?...它是cluster模块发送跨进程消息的内部代理,这个模块对外暴露了消息发送方法sendHelper和内部消息监听器的预处理方法internal,源码很短就不贴了。...再看看没有ack属性的情况,没有这个属性时消息是从子进程发给主进程的,自然要调用主进程的方法,从逻辑里不难看出,这种情况下方法引用的就是internal方法执行时传入的第二个参数(master.js源码...213行执行的internal(worker, onmessage)的onmessage这个函数),源码中就是利用高阶函数这种分步执行的特点实现了引用。...那么剩下的事情,就剩下调度对象RoundRobinHandle的源码了。

75930

通过Node.js的Cluster模块源码,深入PM2原理

Node.js无疑是走向大前端、全栈工程师技术栈最快的捷径(但是一定要会一门其他后台语言,推荐Golang),虽然Node.js做很多事情都做不好,但是在某些方面还是有它的优势。...通常的解决方案,便是使用Node.js中自带的cluster模块,以master-worker模式启动多个应用实例。...带着这些疑问我们开始往下看 TIPS: 本文编写于2019年12月8日,是最新版本的Node.js源码 Cluster源码解析: 入口 : const childOrMaster = 'NODE_UNIQUE_ID...总结:原来端口被复用是因为设置了SO_REUSEADDR,当然不止这一点,下面会继续描述 回到源码第一行 NODE_UNIQUE_ID是什么?...初始化时由 src/node.js 调用 cluster.

2.8K30

node.js

一、简介 1、什么是Node.js?...Node.js 是一种建立在Google Chrome’s v8 engine上的 non-blocking (非阻塞), event-driven (基于事件的) I/O平台....Node.js平台使用的开发语言是JavaScript,平台提供了操作系统低层的API,方便做服务器端编程,具体包括文件操作、进程操作、通信操作等系统模块 2、Node.js的特性 基于V8引起渲染JS...image.png 多版本安装方式 卸载已有的Node.js 下载nvm 在C盘创建目录dev 在dev目中中创建两个子目录nvm和nodejs 并且把nvm包解压进去nvm目录中 在install.cmd...文件上面右键选择【以管理员身份运行】 打开的cmd窗口直接回车会生成一个settings.txt文件,修改文件中配置信息 配置nvm和Node.js环境变量 NVM_HOME:C:\dev\nvm NVM_SYMLINK

5.1K30

彻底搞懂 Node.js 中的 Require 机制(源码分析到手写实践)

如何看 Node.js 源码 require 函数是如何产生的?为什么在 module 中可以直接使用。...那部分内容放在 Node.js与 C++ 那些事的文章中介绍。 require 加载普通文件模块 require 加载 C++ 扩展文件模块 require 加载原理(源码分析与手写) ?...require 源码并不复杂,这里采用的是边看源码边手写的方式讲解(我们最终实现的require 是简易版本,一些源码提到,但是简易版本不会实现),实现 require 其实就是实现整个 Node.js...require 的源码中还是有很多细节点可以学习和分析的,比如这里忽略了 isMain 主文件判断,启动时候 require 的使用(这个会在另一篇文章 Node.js 的启动源码分析中介绍),以及在.../blob/master/ Node.js源码分析

2.7K21

Node.js】你真的了解 Node.js

最近笔者在阅读《深入浅出Node.js》,结合查阅的相关资料,本文算是一篇 Node.js 笔记。 Node.js 是基于 Chrome V8 引擎的 JavaScript 运行时环境。...在 Node.js 出现之前,JavaScript 只能在浏览器中使用。而 Node.js 的出现打破了这个局面。以下为 Chrome 浏览器和 Node.js 的组件构成。...浏览器和 Node.js 的结构是相似的,比如它们都是通过事件驱动的异步架构,浏览器通过事件驱动来完成界面 UI 交互,Node.js 通过事件驱动完成服务 I/O。...什么场景下使用 Node.js 适合场景 上文提到,Node.js 是单线程、使用非阻塞 I/O 调用,这允许它支持数以万计的并发支持(在事件循环中维持)。...[3] 来,告诉你Node.js究竟是什么?

5.4K10
领券