美文网首页
从零开始学习node.js(四)[纽约的老郑原创,翻版必究]

从零开始学习node.js(四)[纽约的老郑原创,翻版必究]

作者: 郑伟的菜园子 | 来源:发表于2016-01-07 03:31 被阅读137次

    这节课我们为深入学习一下模块的机制,正确掌握模块的姿势可以让我们以后开发的时候遇到问题不会慌。
    我们说的模块大的范围上分二大类,一种是核心模块,这些不需要我们通过npm来加载,我们直接进行引用,如果是非核心模块,就得借助npm来引入了,node为我们提供了这些核心模块:
    url:解析url
    fs:文件系统相关
    querystring:解析URL的查询字符串
    util:这个封装了各种有用的小工具方法
    path:处理文件的路径
    http:这个最常用,提供http相关的很多东西
    crypto:提供加密和解密的功能,基本上是对OPENSSL的包装

    我们回顾一下第一天学习的怎么创建一个服务器的代码:

    我们可以看到,我们从头到尾就只创建并编辑了这一个http.js文件,那我们用到了http这个核心模块,这个我们想要使用,直接用require,引进来就可以用了,但是我们的非核心模块怎么办呢?
    这里又分二种类型,第一种是我们npm上面别人为我们编写好的,我们直接npm安装就可以了,可以参考一下上一节,另外一种就是自定义模块了,这个自定义模块采用的是近年来比较热门的CommonJS规范:

    module对象:

    每个模块内部,都有一个module对象,代表当前模块。它有以下属性。

    module.id 模块的识别符,通常是带有绝对路径的模块文件名。
    module.filename 模块的文件名,值为此模块的绝对路径。
    module.loaded 返回一个布尔值,表示本模块是否已经完成加载。
    module.parent 返回一个对象,表示调用该模块的模块。
    module.children 返回一个数组,表示该模块要用到的其他模块,也就是require的其它模块。

    有的同学要问了,我们怎么知道当前的文件是被别人引用还是真的是在执行当前的module?我们可以用下面的命令来判断:

    我们使用gulp或者使用liveload的时候,会对gulp或liveload能实现自动编译感到好奇,其实这本质上利用的是node的一个叫watchFile的方法。我们现在来看一下原理:

    相关文章

      网友评论

          本文标题:从零开始学习node.js(四)[纽约的老郑原创,翻版必究]

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