Node 相关知识

在这里插入图片描述

一、Node.js 用途

  • Web 服务 API,比如 REST
  • 实时多人游戏
  • 后端的 Web 服务,例如跨域、服务器端的请求
  • 基于 Web 的应用
  • 多客户端的通信,如即时通信

二、ECMAScript 标准的缺陷

  • 没有模块系统
  • 标准库较少
  • 没有标准接口
  • 缺乏管理系统

三、模块化

  • 如果程序设计的规模达到了一定程度,则必须对其进行模块化。
  • 模块化可以有多种形式,但至少应该提供能够将代码分割为多个源文件的机制。
  • CommonJS 的模块功能可以帮我们解决该问题。

四、CommonJS 规范

  • CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有模块化标准的缺陷。
  • CommonJS 规范为 JS 指定了一个美好的愿景, 希望 JS 能够在任何地方运行。
  • CommonJS 对模块的定义十分简单:
    1、模块引用
    2、模块定义
    3、模块标识

五、模块引用

  • 在规范中,定义了 require()方法,这个方法接手模块标识,以此将一个模块引入到当前运行环境中。
  • 模块引用的示例代码:var math = require('math');

六、模块定义

  • 在运行环境中,提供了 exports 对象用于导 出当前模块的方法或者变量,并且它是唯一的导出的出口。
  • 在模块中还存在一个 module 对象,它代表模块自身,而 exports 是 module 的属性。
  • 在 Node 中一个文件就是一个模块。
    在这里插入图片描述

七、模块标识

  • 模块标识其实就是模块的名字,也就是传递给 require()方法的参数,它必须是符合驼峰命名法的字符串,或者是以 ... 开头的相对路径、或者绝对路径。
  • 模块的定义十分简单,接口也十分简洁。 每个模块具有独立的空间,它们互不干扰, 在引用时也显得干净利落。

八、Node 模块实现

  • Node 中虽然使用的是 CommonJS 规范,但是其自身也对规范做了一些取舍。
  • 在 Node 中引入模块,需要经历如下 3 个步骤:
    1、路径分析
    2、文件定位
    3、编译执行
  • 在 Node 中,模块分为三类:一类是底层由 C++ 编写的内建模块,一类是 Node 提供的核 心模块;还有一类是用户编写的模块,称为文件模块。
发布了161 篇原创文章 · 获赞 71 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_44034384/article/details/99686858