Node编程基础

  1. Node编程基础
    1. 如何组织代码
      1. 如何创建模块
        1. 用node_modules重用模块
    2. 异步编程技术

Node编程基础

如何组织代码

模块是Node让代码易于重用的一种组织和包装方式

  • 传统方式按逻辑把单个文件分为多个文件,但这些文件互相引用的同时会产生全局变量污染的问题
  • Node模块打包代码是为了重用,但它们不会改变全局作用域
  • Node模块允许你从被引入文件中选择要你暴露给程序的函数和变量,如果模块返回的函数和变量不止一个,可以把它们作为exports对象的属性,否则就使用module.exports

如何创建模块

  • 模块既可能是一个文件,也可能是包含一个或多个文件的目录。如果模块是一个目录,Node通常会在这个目录下找一个叫index.js的文件作为模块的入口
  • 使用模块要用到require函数,require是Node中少数几个同步I/O操作之一

用node_modules重用模块

  • 要求模块在文件系统中使用相对路径存放,对于组织程序特定的代码很有帮助,但是与他人共享代码却用处不大。Node的node_modules机制可以不必知道模块在文件系统中的具体位置。

  • node_modules的搜寻机制如下:

    1.开始在文件同一目录下寻找;

    2.没有找到,就在当前目录node_modules下找

    3.没有找到,进入父目录,再找当前目录node_modules中有没有,重复3;

    4.没有找到,找环境变量NODE_PATH指定目录中是否存在;

    5没有找到,异常。

异步编程技术

  • 事件发生会触发响应逻辑。

  • 在Node事件里流行两种响应逻辑的管理方式:

    1. 回调

      回调通常用来定义一次性响应逻辑。比如数据库查询,可以指定一个回调函数来确定如何处理查询结果。这个回调函数可能会显示数据数据库查询结果,根据这些结果做些计算,或者以查询结果为参数执行另一个回调函数

    2. 事件监听

      事件监听器,本质上也是一个回调,不同的是,它跟一个事件相关联。在Node中,当有HTTP请求过来时,此时服务器会产生一个事件,事件监听器就可以监听这个事件,并添加一些响应的逻辑。

  • 一个Node HTTP服务器实例就是一个事件发射器

  • 能够继承和添加事件发射及处理能力的类(EventEmitter)

(未完待续)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏