web学习笔记(四十七)

目录

1. node.js中的三个全局变量

1.1 global

1.2 __dirname 文件夹的绝对路径

1.3 __filename 文件名的绝对路径

2.模块化

2.1 什么是模块化

2.2 模块化的好处

3. Node.js 中模块化

3.1 Node.js 中的模块化规范

4. Node.js 中的模块作用域

4.1module 对象

4.2  module.exports 对象

4.3 exports 对象

5. npm与包

5.1 包

5.2 npm


1. node.js中的三个全局变量

1.1 global

在 Node.js 中,global 是一个全局对象,类似于浏览器环境中的 window 对象。在 Node.js 中,`global` 对象包含了所有全局变量和函数,在任何地方都可以访问它们。

一些常见用法包括:

1. 定义全局变量:通过在任何地方直接声明变量,可以将其添加到全局范围内。


   global.myGlobalVar = 'Hello, Global!';

2. 访问全局变量: 通过`global`对象可以访问全局范围内定义的变量。

   console.log(global.myGlobalVar); // 输出: Hello, Global!

3. 全局函数: 在应用程序中定义的函数可以作为全局函数,并通过`global`对象访问。

   global.myGlobalFunction = function() {
       console.log('This is a global function.');
   };
   
   myGlobalFunction(); // 输出: This is a global function.

需要注意的是,在 Node.js 中过度使用全局变量并不袗推荐,因为全局变量会增加代码的耦合性并且容易导致命名冲突。通常情况下,最好尽可能地避免使用全局变量,而是通过模块化的方式来组织代码,避免全局污染和其他潜在问题。

1.2 __dirname 文件夹的绝对路径

__dirname 是一个 Node.js 中的全局变量,用于表示当前模块的目录路径。它总是指向当前模块的所在目录的绝对路径。

fs.readFile(__dirname + '/flie/1.txt', 'utf-8', (err, data) => {
    if (err) return console.log('读取失败' + err.message);
    console.log(data);
})

1.3 __filename 文件名的绝对路径

__filename 是 Node.js 中的一个全局变量,用于表示当前模块的文件名(包含绝对路径)。与 __dirname 表示当前模块的目录路径不同,__filename 表示当前模块文件的完整路径,包括文件名。

console.log(__filename);

2.模块化

2.1 什么是模块化

模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块。

2.2 模块化的好处

  • 提高了代码的复用性
  • 提高了代码的可维护性
  • 可以实现按需加载

3. Node.js 中模块化

node.js根据模块来源的不同,将模块分为了三大类,分别是:

内置模块fs、path、http
自定义模块需要导入( require('url'))和导出(module.exports = { })
第三方模块就是包,需要进行下载操作,在控制台输入npm i  包名来下载包

使用 require() 方法加载其它模块时,会执行被加载模块中的代码。 

3.1 Node.js 中的模块化规范

  • 每个模块内部,module 变量代表当前模块。
  • module 变量是一个对象,它的 exports 属性(即 module.exports)是对外的接口。
  • 加载某个模块,其实是加载该模块的 module.exports 属性。require() 方法用于加载模块。

4. Node.js 中的模块作用域

       和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。

4.1module 对象

在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息,打印如下:

4.2  module.exports 对象

          在自定义模块中,可以使用 module.exports 对象,将模块内的成员共享出去,供外界使用。外界用 require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象。

注意:使用 require() 方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准 

4.3 exports 对象

             由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node 提供了 exports 对象。默认情况下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 module.exports 指向的对象为准。因此不推荐使用exports 对象,而且严禁exports 对象   和 module.exports 对象混用 。

5. npm与包

5.1 包

       在node.js中将第三方模块称为包。Node.js 中的包都是免费且开源的,不需要付费即可免费下载使用,包都是由第三方个人或团队(技术大牛)开发出来的。包是基于内置模块封装出来的,提供了更高级、更方便的 API,极大的提高了开发效率。

5.2 npm

          npm(Node Package Manager)是 Node.js 的包管理工具,也是世界上最大的软件注册表之一。通过 npm,开发者可以方便地下载、安装、更新和管理 Node.js 包和依赖项,从而加快项目开发的速度并提高代码的可重用性。我们并不需要单独下载npm,在下载Node时已经将npm下载完了,我们可以通过在控制台输入npm -v来查看自己下载的npm的版本。然后如果有需要下载某个包时只需要在控制台输入npm i 包名 就可以进行下载包的操作。也可以安装指定版本的包

  • 61
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值