• 技术文章 >web前端 >js教程

    nodejs中全局变量有什么

    青灯夜游青灯夜游2021-11-23 17:46:42原创594

    在nodejs中,全局变量有两个:1、“__filename”, 表示当前正在执行的脚本的文件名,可输出文件所在位置的绝对路径;2、“__dirname”,表示当前执行脚本所在的目录。

    本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。

    全局变量:

    1)_filename:指向当前运行的脚本文件名。

    2)_dirname:指向当前运行的脚本所在的目录。

    __filename

    __filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。

    实例

    创建文件 main.js ,代码如下所示:

    // 输出全局变量 
    __filename 的值console.log( __filename );

    执行 main.js 文件,代码如下所示:

    $ node main.js
    /web/com/runoob/nodejs/main.js

    __dirname

    __dirname 表示当前执行脚本所在的目录。

    实例

    创建文件 main.js ,代码如下所示:

    // 输出全局变量
    __dirname 的值console.log( __dirname );

    执行 main.js 文件,代码如下所示:

    $ node main.js
    /web/com/runoob/nodejs

    全局对象与全局变量:

    global 最根本的作用是作为全局变量的宿主。按照 ECMAScript 的定义,满足以下条 件的变量是全局变量:

    在最外层定义的变量;全局对象的属性;隐式定义的变量(未定义直接赋值的变量)。

    当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。需要注 意的是,在 Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。

    准全局变量

    模块内部的局部变量,指向的对象根据模块不同而不同,但是所有模块都适用,可以看作是伪全局变量,主要为module, module.exports, exports等。

    module变量指代当前模块。module.exports变量表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。

    这里需要特别指出的是,exports变量实际上是一个指向module.exports对象的链接,等同在每个模块头部,有一行这样的命令。

    var exports = module.exports;

    这造成的结果是,在对外输出模块接口时,可以向exports对象添加方法,但是不能直接将exports变量指向一个函数:

    exports.自定义模块 = function (x){ console.log(x);};

    上面这样的写法是无效的,因为它切断了exports与module.exports之间的链接。但是,下面这样写是可以的。

    更多node相关知识,请访问:nodejs 教程!!

    以上就是nodejs中全局变量有什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nodejs 全局变量
    上一篇:jquery怎样点击按钮删除当前行 下一篇:nodejs为什么火了
    千万级数据并发解决方案

    相关文章推荐

    • nodejs json中文乱码怎么办• apt怎么安装 nodejs• 深入浅析node.js中的文件流• nodejs 能做什么• 深入了解Node.js中的VM模块
    1/1

    PHP中文网