Node.js 模块化
标签(空格分隔): Node.Js
JavaScript代码被载入网页同时就会被添加进全局名称空间,所以存在一定的安全问题,而Nodejs为服务端的JS制定了一些规范并实现了CommomJs模块标准:
模块化
nodejs在执行过程当中默认给每个模块都添加了上下文,所以模块不会污染全局作用域————不存在全局变量
//默认在使用模块时加个东西(不存在全局变量)
(function (require,exports,module){
})();
模块类型
1.系统模块(核心模块):
一些以二进制形式发布的模块,只能通过模块名调用,即使已经存在同名的第三方模块,也会优先加载核心模块。几种常用的系统模块:详情参照Node.js文档
http -- HTTP querystring -- 查询字符串 url -- URL fs -- 文件系统
2.其他模块:
使用npm安装的第三方模块,自己创建的自定义模块
模块组成
exports 输出:
exports.a=12;
exports.c=5;
exports.b=1;
**module 模块:**对外输出批量数据
module.exports={a:12,b:3,c:5};
//exports==module.export
**require 请求:**引入模块( 引入系统模块 引入本地模块 – ‘./’)
const fs = require('fs'); //系统
const mod = require('./mod.js'); //本地(加载文件模块可以省略'.js')
cont module = ('module.js') //第三方模块(既不是核心模块也不是文件模块Node就会在当前目录下的node_module文件夹中查找该模块,如果没有则继续查找父级)
NodeJs Package Manager(NodeJs包管理器(npm)
在nodejs模块的使用中,npm是获取第三方模块的重要途径:
(1)统一下载路径
(2)自动下载依赖
npm insrtall XXX
npm uninstall XXX
(3.)发布自己的模块
node_modules 文件也可以存放自定义模块require不用加’./’