美文网首页
《深入浅出nodejs》笔记

《深入浅出nodejs》笔记

作者: shanshanfei | 来源:发表于2017-07-19 20:36 被阅读0次

第二章:模块机制

总结:nodejs遵循commonjs规范,commonjs定义了模块、I/O、二进制、文件等规范,其中最重要的就是nodejs模块规范,下面总结一下nodejs的模块加载:
nodejs的模块分为核心模块和文件模块,核心模块在nodejs源代码编译中,已经编译进了二进制可执行文件中,只要node启动,就已经被加载到内存中,所以加载速度比较快。像文件模块就需要经历路径解析、文件定位和编译执行的过程。
路径解析可以是一个标识符、相对路径或者绝对路径,最终require方法会转换成真实路径。
文件定位包括文件扩展名分析和包目录分析等,其中文件扩展名没带时,是以.js .json .node的顺序进行解析的。
完成路径解析和文件定位后,node会新建一个模块对象,这时候就有了exports、module等变量,再具体的编译过程中,node会对加载的js文件进行头尾的包装(包装见下面示例代码),包装的过程中,将模块对象的module exports __filename __dirname等变量传递给function函数,这就是我们没有在js文件中定义module等变量,却可以使用的原因。

    //(function(exports, require, module, __filename, __dirname){//头
        var a = 123;
        exports.add = function(b){
            return a+b;
        }
        //...
    //});//尾

另外,node对于模块的加载是有缓存的,以减少二次引用时的性能开销(核心模块的缓存检查优先于文件模块的缓存检查)。

////////////////
笔记:

  1. nodejs特点:
    单线程、数据驱动、异步、速度快、耗费内存多

劣势:

  • 默认不支持多核,但可以用cluster实现
  • 不支持服务器集群 ,但可以用node-http-proxy实现
  • 借助nginx实现负载均衡
  • 灾难恢复 可以用node-cluster实现

相关文章

  • 常用链接

    html内容转换jade模版 用户脚本(浏览器插件) Tampermonkey 深入浅出Nodejs读书笔记 s...

  • V8垃圾回收机制

    文章地址 本文是深入浅出nodejs的部分学习笔记 V8内存限制 在node中javascript能使用的内存是有...

  • 《深入浅出nodejs》笔记

    第二章:模块机制 总结:nodejs遵循commonjs规范,commonjs定义了模块、I/O、二进制、文件等规...

  • 深入浅出nodejs笔记

    Node.js是一个后端的Javascript运行环境。特点:事件驱动、异步编程nodejs的包结构如下: 一个p...

  • (一)初识NodeJs

    说明:该学习笔记参考《深入浅出Node.js》在学习过程中,添加了自己的理解和适当的补充!仅供参考! NodeJs...

  • (二)NodeJs模块机制和异步I/O

    说明:该学习笔记参考《深入浅出Node.js》在学习过程中,添加了自己的理解和适当的补充!仅供参考! NodeJs...

  • 深入浅出Nodejs之笔记

    深入浅出Nodejs 模块机制 Commonjs规范 node的模块实现步骤:路径分析文件定位编译执行核心模块在n...

  • 2018 第一本书

    阿啦嘞:《深入浅出nodejs》《JS promise迷你书》 不折腾:[ √ ] 《王小波系列》 llp:《皮...

  • 闲聊c/c++ 4: 征服优雅、高效的Libuv库之初识篇

    这一系列文章主要分析nodejs中的核心库Libuv。 我的参考书: 朴灵的深入浅出nodejs Jeffrey ...

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

网友评论

      本文标题:《深入浅出nodejs》笔记

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