美文网首页
步遥——Node之模块实现

步遥——Node之模块实现

作者: 你还想好吗 | 来源:发表于2020-12-04 13:40 被阅读0次

针对开发中的技术选型:node的优点如下:
node面向网络并且擅长并行I/O,能够有效的组织起更多的硬件资源,从而提供更好的服务。I/O密集的优势主要是在于Node利用事件循环的处理,而不是启用每一个线程为每一个请求服务,资源占用极少。node可以合理的调度子进程,从而处理cpu密集型的操作,也可以通过c/c++扩展的方式实现高密度的计算。
node引入模块的流程:
node进程启动时,部分核心模块就已经被加载进内存中,所以在路径分析,文件定位时加载的速度非常的快,而用户编写的模块则需要完整的路径分析,文件定位,编译执行过程,也就是要严格执行模块加载的3个流程。
模块加载的过程:优先从缓存中加载模块,node中对二次引入的模块会一律采用缓存优先的方式,就是第一次模块编译和执行之后的对象。
node引入文件模块时可以不加扩展名,这样在定位文件的时候,会根据后缀为.js,json,.node依次尝试,所以查找会比较慢,好的方式就给文件加上对应的后缀名。
编写node的模块中的require,module,exports,__filename,__dirname是哪里来的呢?
js开发中多模块的文件引入,为了不造成全局变量不被污染,所以都是以立即执行函数形成一个封闭的作用域,每个模块都这么写不是很费事吗?所以,node就把这种重复的工作给拿过来啦,在编译的过程中,Node对js文件的内容进行头尾包装,在头部添加了(function(exports,require,module,__filename,__dirname){//模块代码 }),每个文件都做了作用域的隔离,当前的模块对象的exports,require,module,__filename,__dirname,作为参数传递给function内部使用。
node在启动时,会生成一个全局变量process,并提供Binding()方法来协助加载内建模块。Binding()模块的实现代码在src/node.cc中,

发布包:

npm init //生成一个package.json文件
npm adduser //在npm官网注册或登录
npm publish .//将包发布到npm官网中

相关文章

  • 步遥——Node之模块实现

    针对开发中的技术选型:node的优点如下:node面向网络并且擅长并行I/O,能够有效的组织起更多的硬件资源,从而...

  • 深入浅出nodejs重点内容

    2. NODE模块端实现 2.2 node模块的实现 引入模块: 路径分析 文件定位 编译执行 2.2.1 优先从...

  • Node模块原理0926

    Node模块原理 1.node模块原理分析 js代码 2.node模块加载分析(多看几遍视频) 3.自己实现一下(...

  • Node.js组成及Events模块

    1 Node.js的模块和包 1.1模块 Node.js本身提供许多模块,每个模块实现一种功能,如文件操作模块fs...

  • 深入NodeJS的模块机制

    Node.js 模块的实现 之前在网上查阅了许多介绍 Node.js 的文章,可惜对于 Node.js 的模块机制...

  • 认识node核心模块--全局对象及Cluster

    原文地址在我的博客,转载请注明出处,谢谢! node 模块是node 完成强大功能的实现者。node 的核心模块包...

  • 1、node的模块实现

    node的模块实现 Node在实现中并非完全按照规范实现,而是对模块规范进行了一定的取舍,同是也增加了少许自身需要...

  • 深入Node.js的模块机制

    1 Node.js模块的实现# 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都...

  • geth node模块分析

    node模块是整个geth节点各个模块的集成,其实现至关重要

  • 深入Node.js的模块机制(转)

    1 Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着...

网友评论

      本文标题:步遥——Node之模块实现

      本文链接:https://www.haomeiwen.com/subject/weemwktx.html