首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NodeJS require()源码解析

最开始谈NodeJS的时候写过一篇文章谈了它与Java各自的优缺点。NodeJS最早的定位是什么样的呢?...那么了解了NodeJS内部执行逻辑以后,我们可以阅读下NodeJS源码,看看require语句究竟是如何进行操作的。...首先我们下载一份NodeJS源码,require语句源码位置: node\lib\internal\modules\cjs\loader.js 首先NodeJS有定义一个构造函数Module。...还记得文章开头我讲到的NodeJS文件查找有三种处理方式,内部定义的源码就在这里。...很多人觉得有事没事扯源码目的就是提高逼格,其实读读源码我们可以学到很多东西,我们可以学习别人优美的代码书写,学习别人对设计模式的熟练使用,或者对整个系统架构的布局。对我们技术提升是有非常大的帮助的。

1.8K30

Nodejs学习笔记(一)——初识Nodejs

起初准备好好研究下Spring这个框架,下载了源码,结合书籍准备一探究竟,看到了Spring如何加载bean,又如何转换成自己的数据格式等等,虽尚未涉及实战,倒算是对之前工作中遇到的一些困惑有所帮助。...可是后来,和一些小伙伴讨论,可以考虑最近杀出来的黑马nodejs,甚是抢眼。基本的出发点是nodejs语法与javascript一致,正好借着这个机会学习下js,也算是对于js从另一个角度好好认识下。...就是一个小白,当然对于nodejs连小白都算不上。...虽然之前有拜读过《javascript权威指南》以及学习过Angularjs,但是终究因为缺乏应用场景,始终与js的关系是若即若离。   ...关于nodejs的语法,无非就是js。当然在我看来还是需要时间来熟悉node这种相较java有很大的“随意性”和不可思议的特性。

2.1K70
您找到你想要的搜索结果了吗?
是的
没有找到

关于nodejs源码的研究

回首对nodejs源码研究,时间已经过去了一年多。...这是我逐渐转向nodejs方向的原因之一。也是我开始研究nodejs源码的原因之一。因为nodejs满足了我喜好和技术上的需求。...我首先从libuv开始研究,因为libuv是nodejs的核心之一。因为曾经研究过一些linux的源码,也一直在学习操作系统的一些原理和实现,所以在阅读libuv的时候,算是没有遇到太大的困难。...通过早期版本,先学习v8的大概原理和一些早期实现上的细节。...第三是提高了你的学习能力,当你对底层原理有了更多的了解和理解,你在学习其他技术的时候,就会更快地学会,比如你了解了epoll的实现,那你看nginx、redis、libuv等源码的时候,关于事件驱动的逻辑

42610

Nodejs学习笔记(1)——安装nodejs

看到这里你肯定要说,又是一个要把Nodejs吹上天的文章!NoNo,本文会一步一步的说明我是怎么学会和用上nodejs的,然后结合其我所了解的语言告诉各位我所了解的Nodejs坑和优势。...学习基础     先说说本人开始学习使用的基础。早期在某外企开发室内3D设计软件,那段时间用已经成为古董的MFC做各种windows事件驱动开发。    ...在随后的许多时光中,深入且大量的学习了前端开发的所有东西,从一穷二白只会用div画画静态页面,到后面自己封装列表、消息通知等组件,通杀jquery、angularjs,了解各种脚手架。...所以学习Nodejs开发,我基本上是没有语言障碍的,只是需要跟上它的思路。 安装Nodejs     要用一样东西之前,当然是要先安装环境。...测试nodejs:输入node打开REPL,然后使用log打印数据: $ node > console.log("hello nodejs!"); hello nodejs!

3.2K20

nodejs可读流源码分析

可读流是对数据消费的抽象,nodejs中可读流有两种工作模式:流式和暂停式,流式就是有数据的时候就会触发回调,并且把数据传给回调,暂停式就是需要用户自己手动执行读取的操作。...我们通过源码去了解一下可读流实现的一些逻辑。因为实现的代码比较多,逻辑也比较绕,本文只分析一些主要的逻辑,有兴趣的可以参考文档或者自行深入看源码了解细节。...nodejs只是抽象了流的逻辑,具体的操作(比如可读流就是读取数据)是由用户自己实现的,因为读取操作是业务相关的。下面我们分析一下可读流的操作。...总结:本文就分析到这里,流的实现代码不算很难,但是非常绕,有兴趣的可以详细看源码,最后分享很久之前画的一个图(链接https://www.processon.com/view/link/5cc7e9e5e4b09eb4ac2e0688

85030

nodejs 14.0.0源码分析之setTimeout

这一篇我们来看看nodejs是如何实现定时器的。14.0.0的nodejs对定时器模块进行了重构,之前版本的实现是用一个map,以超时时间为键,每个键对应一个队列。即有同样超时时间的节点在同一个队列。...3 超时时间和链表的映射 1中已经提到,超时时间一样的节点,会排在同一个链表中个,nodejs中用一个map保存了超时时间到链表的映射关系。...了解完定时器整体的组织和基础数据结构,我们可以开始进入真正的源码分析了。 我们直接从setTimeout函数开始。...nodejs在初始化的时候通过一下代码对定时器进行了初始化工作。...现在我们知道了nodejs是如何设置超时的处理函数,也知道了什么时候会执行该回调。那我们就来看一下回调时具体处理逻辑。

77210

为什么要读nodejs源码

前几天有个同学和我说,他在看nodejs源码,但是不知道为什么需要看,也不知道从中可以学到什么。所以今天想聊一下关于阅读nodejs源码的意义。阅读其他源码也类似。...那么看nodejs源码的意义就很明显了。...所以我们可以从libuv中学习到实现一个服务器用到的技术。...额外地,你也可以学习nodejs中的一些设计思想,比如定时器的设计,从早期版本到后来的重构背景。又或者如果你来设计一个服务器,你怎么设计。...首先,我是一个在nodejs源码学习的人,而不是站在nodejs之上的人,这意味着我也在慢慢学习,并且因为时间关系,我没有办法像图解系列,码农翻身一样讲得那么好那么易懂。

48030
领券