前端开发学习Node .js

前端移动开发的类库 google前端开发插件 美图秀秀前端开发招聘

一.模块概念

1.模块分类:

①.核心模块 http/fs/path
②.文件模块 var util = require(‘./util.js’);
③.第三方模块 var express = require(‘express’);
注:require命令用于加载文件,后缀名默认为.js

2.路径规则

如果参数字符串以“/”开头,则表示加载的是一个位于绝对路径的模块文件。比如,require(‘/home/marco/foo.js’)将加载/home/marco/foo.js。
如果参数字符串以“./”开头,则表示加载的是一个位于相对路径(跟当前执行脚本的位置相比)的模块文件。比如,require(‘./circle’)将加载当前脚本同一目录的circle.js。
如果参数字符串不以“./“或”/“开头,则表示加载的是一个默认提供的核心模块(位于node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)

3.通过入口文件加载

require方法可以通过入口文件,加载整个目录
package.json文件中将入口文件写入main字段
package.json

{“name”:”your-name”,”main”:”a.js”}

如果找不到则会加载该目录下的index.js文件或者index.node文件

4.删除会缓存模块

所有缓存的模块保存在require.cache之中,如果想删除模块的缓存,可以像下面这样写

删除缓存

/*删除指定模块的缓存*/
delete require.cache[moduleName];

删除缓存

/*删除所有模块的缓存*/
Object.keys(require.cache).forEach(function(key) {
    delete require.cache[key]
})

5.检查是否是主模块

检查主模块

//可以用如下的方法检测当前模块是否是主模块
if (module == require.main) {
    console.log(‘当前模块是主模块’)
}

6.在node中,可以使用函数来查询某个模块完成绝对路径的文件名

查询模块绝对路径文件名

var url = require.resolve(‘./2’)
console.log(url) //输出结果:D:\node\2.js

7.require.main

判断模块是直接执行,还是被调用执行
直接执行的时候(node module.js),require.main属性指向模块本身
require.main == module // true

8.module

每个模块内部都有一个module对象,代表当前模块,他有以下属性
module.id 模块的识别符,通常是带有绝对路径的模块文件名。
module.filename 模块的文件名,带有绝对路径。
module.loaded 返回一个布尔值,表示模块是否已经完成加载。
module.parent 返回一个对象,表示调用该模块的模块。
module.children 返回一个数组,表示该模块要用到的其他模块。
module.exports 表示模块对外输出的值。
module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。

exports变量指向module.exports
等同在每个模块头部,有一行这样的命令
var exports = module.exports;

exports与module.exports的区别

如果一个模块的对外接口,就是一个单一的值,不能使用exports输出,只能使用module.exports输出

web前端开发 移动端 前端开发常用插件 网站前端开发招聘

» 本文来自:前端开发者 » 《前端开发学习Node .js》
» 本文链接地址:https://www.rokub.com/5367.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!