21xrx.com
2024-12-23 00:31:48 Monday
登录
文章检索 我的文章 写文章
Node.js全局变量说明
2023-06-28 16:11:14 深夜i     --     --
Node js 全局变量 JS程序 模块 console对象

Node.js是一种以JavaScript编写的、用于服务器端编程的工具包,能够运行在各种操作系统上,包括Windows、Mac OS X和Linux等。Node.js中有一些全局变量,这些变量在所有模块中都可以使用。在本文中,我们将介绍一些常用的全局变量及其用途。

1. `__filename` 和 `__dirname`

`__filename` 变量返回当前模块文件的绝对路径,而 `__dirname` 变量返回当前模块文件所在目录的绝对路径。它们很有用,因为它们可以帮助我们访问我们的模块文件或目录。

例如,我们可以使用下面的代码获取当前模块文件所在目录的路径:


console.log(__dirname);

2. `exports` 和 `module.exports`

在Node.js中,我们可以使用 `exports` 和 `module.exports` 变量来将模块中的变量、函数和对象导出到其他模块中使用。这两个变量的作用是非常相似的,它们都可以导出模块中的内容,但它们有一些细微的区别。

`exports` 只是 `module.exports` 的一种辅助导出方式,而 `module.exports` 是实际导出的对象。


// test.js

exports.myFunc = () => {

 console.log('Hello, World!');

}

// main.js

const test = require('./test.js');

test.myFunc(); // 输出 "Hello, World!"

在这个例子中,我们使用 `exports` 将 `myFunc()` 函数导出到 `test.js` 模块中。在 `main.js` 中,我们可以使用 `require()` 函数获取 `test.js` 模块,然后使用 `test.myFunc()` 调用 `myFunc()` 函数。

3. `process` 和 `process.argv`

`process` 全局变量是一个全局对象,它可以用于与当前Node.js进程进行交互。它有许多属性和方法,包括 `process.env`、`process.stdout`、`process.stderr`、`process.pid` 等等。

`process.argv` 变量是一个包含命令行参数的数组。如果我们在命令行中使用 `node` 命令运行我们的脚本文件,那么 `process.argv` 数组中的第一个元素将是 `node` 命令的路径。第二个元素将是正在运行的脚本文件的路径。除此之外,所有的命令行参数都将被添加到 `process.argv` 数组中。

例如,在下面的代码中,我们可以使用 `process.argv` 获取命令行参数:


// main.js

const args = process.argv.slice(2);

console.log(args);

如果我们在命令行中使用以下命令运行我们的脚本:


node main.js Hello World

那么输出将是:


['Hello', 'World']

总的来说,全局变量是Node.js中非常有用的工具,它们可以帮助我们在不同的模块中轻松地访问和导出变量、函数和对象。在编写Node.js应用程序时,我们应该了解这些变量,并根据需要使用它们。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复