Node.js学习-Node.js入门-04模块系统

模块介绍

  • 导入模块
    • require(模块名)
    • 自定义模块
      • ./模块.js引用(.js可以省略)
    • 核心模块
      • 本质也是文件
      • 按模块名加载即可
    • 第三方模块
      • 必须通过npm下载
      • 不能与核心模块名称一致
      • 当前目录下node_modules目录存放下载的模块
      • 模块/package.json/main属性记录了模块入口
      • 如果package.json不存在或者没有main属性,默认加载index.js,如果不存在,则加载上一级的node_modules目录,直至找到加载入口
exports
  • 默认模块作用域,模块所有的成员只在模块内部有效
  • 要其他模块可以访问,需要挂载到exports
//main.js
//reuire默认得到对象
var forExports = require('./foo');
console.log(forExports);
//foo.js
var foo = 'bar';
function add(x,y){
	return x+y;
}
//只有加入exports对象中才能在外部调用
exports.add = add;
//exports可以添加多个参数对象
exports.str  = 'hello';
//其他(导出对象)
exports.a = 123;
exports.b = 'hello';
exports.c = function(){
	console.log('ccc');
}
exports.d = {
	foo:'bar'
}
//其他(导出单个成员)
//module.exports - 'hello';
//多个module.exports,后者会覆盖前者
module.exports = function(){}

如果需要直接require导出某个成员,而非对象,直接使用module.exports = add;
原理解析

//在模块中有一个默认module对象
//module中有一个默认空的exports对象
//在模块最后有个默认```return module.exports```
//挂载对象到module.exports,即可通过require得到
//模块中还有var exports = module.exports代码,可以使用两者来挂载
//所以不能对exports重新赋值,会断开与module.exports的连接
//moudle.exports重新复制也会断开与exports的连接,可以再次连接
/*
var module = {
	exports :{
		
	}
}
var exports = module.exports;
return module.exports;
*/
require
  • 执行模块中的代码
  • 得到被加载模块中的exports导出的接口对象
npm
  • npm package manager
  • 建议每个项目都创建一个package.json文件(包管理文件)
    • npm init自动创建并初始化
    • npm install --save jquery自动加载包并将依赖项填写到package.js文件
  • 常用项
    • npm init
    • npm install 包名
    • npm install 包名 --save
      • npm i -S 包名
    • npm uninstall --save 包名
      • npm un -S 包名
    • npm help
      • npm uninstall --help
  • 镜像网站
Path
  • 专门用来操作路径
#获取文件名
path.basename('路径',‘指定需要去除的后缀名’);
#获取文件目录
path.dirname('路径');
#获取扩展名
path.extname('路径');
#判断是否是绝对路径
path.isAbsolute('路径');
#路径拼接
path.join('c:/a','/b');
#路径解析为对象
path.pares('路径');
__dirname
  • 当前文件的所属目录
console.log(__dirname);
__filename
  • 当前文件的路径
console.log(__filemane);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值