一.模块

在NodeJs中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名.

1.0 概念

  1. require
    require函数用于在当前模块中加载和使用别的模块,另外模块中的.js扩展名可以省略.
    还可以使用以下方式加载和使用一个JSON文件

var data = require('./data.json')

  1. exports
    exports对象是当前模块的导出对象.用于导出模块公有方法和属性.别的模块通过require函数调用.
  2. module
    通过module对象可以访问到当前模块的一些相关信息. 但最多的用途是替换当前模块的导出对象.
    模块导出对象默认是一个普通对象,如果想改成一个函数的话,使用如下方式

module.exports = function () { console.log('hello world') };

2.0 模块初始化

一个模块的JS代码仅在模块第一次被使用时执行一次,并且在执行过程中初始化模块导出对象之后,缓存起来的导出对象被重复利用

3.0 模块路径解析规则

require函数支持(/)斜杠或盘符(C:)开头的绝对路径,也支持(./)开头的相对路径
另外还有一种路径规则

  • 内置模块
    如果传递给require函数的事nodejs的内置模块名称,不做路径解析,直接返回内部模块的对象. eg: require('fs')
  • node_modules目录
    eg: 某个模块的绝对路径是/home/user/hello.js, 在该模块中使用require('foo/bar')方式加载模块时,则nodehs依次尝试使用以下路径.

/home/user/node_modules/foo/bar
/home/node_modules/foo/bar
/node_modules/foo/bar

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容