nodejs模块化

模块化

require

在NodeJS中,一个JS文件就是一个单独的模块,而文件路径(可以是相对路径,也可以是绝对路径)就是模块名。(模块名中的.js扩展名可以省略)

// 模块名中的.js可省略
var foo1 = require('./foo');
var foo2 = require('./foo.js');

// 相对路径与绝对路径皆可
var foo3 = require('/home/user/foo')

另外,还可以使用require加载一个JSON文件。

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

exports

exports.hello = function() {
    console.log('Hello World');
};

module

module.exports = function() {
    console.log('Hello World');
};

模块路径解析规则

  1. 内置模块
    如果传递给require函数的是NodeJS内置模块名,则不做路径解析,例如require('fs')
  2. node_modules目录
    NodeJS定义了一个特殊的node_modules目录用于存放模块。例如某个模块的绝对路径是/home/user/hello.js,在该模块中使用require('foo/bar')方式加载模块时,NodeJS将依次尝试使用以下路径:
    • /home/user/node_modules/foo/bar
    • /home/node_modules/foo/bar
    • /node_modules/foo/bar
  3. NODE_PATH环境变量

index.js

var cat = require('/home/user/lib/cat');
// 等价于
var cat = require('/home/user/lib/cat/index');
posted @ 2023-08-24 10:37  银桑V_V  阅读(16)  评论(0)    收藏  举报