node全局变量__dirname与__filename的区别

(1) __filename变量

node.js中,在任何模块文件内部,可以使用__filename变量获取当前模块文件的带有完整绝对路径的文件名。

在应用程序根目录下新建app.js文件,其中代码如下所示。
var testModule1=require(‘./test/testModule.js');

在应用程序根目录下新建一个test子目录,在该目录下新建一个testModule.js文件,其中代码如下所示。
console.log(__filename);

在命令行窗口中输入“node app.js”命令并按下回车键,REPL运行环境中将显示testModule.js文件的完整文件名,执行结果如图所示:

(2)__dirname

获得当前文件所在目录的完整目录名:

在应用程序根目录下新建app.js文件,其中代码如下所示。
var testModule1=require(‘./test/testModule.js');

在应用程序根目录下新建一个test子目录,在该目录下新建一个testModule.js文件,其中代码如下所示。
console.log(__dirname);

在命令行窗口中输入“node app.js”命令并按下回车键,REPL运行环境中将显示testModule.js文件所在目录的完整绝对路径,执行结果如图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Node.js中 __dirname 的使用介绍

    前言 本文主要给大家介绍的是关于Node.js中 __dirname 使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 方法如下 新建个文件 app.js 里面的内容如下: console.log(__dirname + '/example.db'); console.log('example.db'); 如果将app.js放在一个根目录下面 执行node app.js 分别输出如下内容: /Users/durban/nodejs/koa-mysql-orm-model/exa

  • 浅析python3中的os.path.dirname(__file__)的使用

    Python的3.0版本,常被称为Python 3000,或简称Py3k.相对于Python的早期版本,这是一个较大的升级.为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容. os.path.dirname(__file__)的作用是 返回脚本的路径,即文件路径中所在的目录(不包含文件名),如下: import os path = os.path.dirname('D:\test\t.py') print(path) 结果: D:\test Process finished

  • node.js中的path.dirname方法使用说明

    方法说明: 返回path的目录.类似于UNIX目录命令. 语法: 复制代码 代码如下: path.dirname(p) 由于该方法属于path模块,使用前需要引入path模块(var path= require("path") ) 接收参数: p        path地址 例子: 复制代码 代码如下: var path= require("path"); path.dirname('/foo/bar/baz/asdf/quux') // returns '/foo

  • node全局变量__dirname与__filename的区别

    (1) __filename变量 node.js中,在任何模块文件内部,可以使用__filename变量获取当前模块文件的带有完整绝对路径的文件名. 在应用程序根目录下新建app.js文件,其中代码如下所示. var testModule1=require('./test/testModule.js'); 在应用程序根目录下新建一个test子目录,在该目录下新建一个testModule.js文件,其中代码如下所示. console.log(__filename); 在命令行窗口中输入"node

  • 详解Node全局变量global模块

    环境:Node v8.2.1; Npm v5.3.0; OS Windows10 在浏览器中我们有window对象用于挂载全局的变量,在Node中我们有global对象可以进行挂载,很多共用的属性就可以挂载到global对象上了,本身它自己也拥有很多的属性. 1.API结构图 2.一些例子 下面是部分API的例子,对部分API的一个简单代码实现 2.1 global 全局命名空间,通过 global 定义的变量,在任何地方都可以使用,类似于浏览器端定义在全局范围中的变量. // foo.js g

  • PHP中全局变量global和$GLOBALS[]的区别分析

    一.举例比较 例一: 复制代码 代码如下: <?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因为$var1被删除了,所以什么东西都没有打印. 例二: 复制代码 代码如下: <?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?> 意外的打印了1.证明

  • node.js事件循环机制及与js区别详解

    目录 一.是什么 二.流程 三.题目 一.是什么 在浏览器事件循环(opens new window)中,我们了解到javascript在浏览器中的事件循环机制,其是根据HTML5定义的规范来实现 而在NodeJS中,事件循环是基于libuv实现,libuv是一个多平台的专注于异步IO的库,如下图最右侧所示: 上图EVENT_QUEUE 给人看起来只有一个队列,但EventLoop存在6个阶段,每个阶段都有对应的一个先进先出的回调队列 二.流程 上节讲到事件循环分成了六个阶段,对应如下: tim

  • 在 Node.js 中使用原生 ES 模块方法解析

    从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能.新功能很大程度上得归功于 Bradley Farias. 1.演示 这个示例的代码目录结构如下: esm-demo/ lib.mjs main.mjs lib.mjs: export function add(x, y) { return x + y; } main.mjs: import {add} from './lib.mjs'; console.log('Result: '+add(2, 3

  • Node.js 使用jade模板引擎的示例

    在"Node.js开发入门--Express安装与使用"里,我们曾经使用express generator创建了一个HelloExpress网站,express工具为我们生成了基本的目录结构.模板.stylesheet.routers等.虽然那只是一个简单的HelloWorld类的小东西,可里面包含的内容还是有些多了,为了更好的理解Express所支持的jade模板引擎的用法,我们这次提供一个手动创建的小网站,可以显示来访者的IP,并对访问进行计数. 安装jade npm instal

  • 使用pkg打包Node.js应用的方法步骤

    Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++.Java这类编译型应用部署方便.然而,Node.js应用执行需要有运行环境,意味着你需要先在部署机器上安装Node.js.虽说没有麻烦到哪里去,但毕竟多了一个步骤,特别是对于离线环境下的部署机,麻烦程度还要上升一级.假设你用Node.js写一些小的桌面级工具软件,部署到客户机上还要先安装Node.js,有点"大炮打蚊子"的感觉.更严重的是,如果部署机器上游多个Node.js应用,而且这些应用要依赖于

  • 浅析node.js的模块加载机制

    在node.js中,模块使用CommonJS规范,一个文件是一个模块 node.js中的模块可分为三类 内部模块 - node.js提供的模块如 fs,http,path等 自定模块 - 我们自己写的模块 第三方模块 - 通过npm安装的模块 node.js提供了大量的模块供我们使用,比如 想解析一个文件的路径,可以使用path模块下的相应方法实现: const path = require('path'); //返回目标文件的绝对路径 console.log(path.resolve('./1

  • node版本快速切换及管理方法

    目录 如何下载node 1.使用n切换node版本 2.使用nvm切换node版本 nvm和n的区别 注意事项 如何下载node 不要下载最新版,推荐先下载稳定版的nodejs.org/zh-cn/downl…,下载完一键式安装即可,安装完成后,命令行查看是否成功. 1.使用n切换node版本 node有一个模块n,是专门用来管理node.js的版本的.npm是用来安装n的包管理工具,前端很多工具都可以通过npm来发布,而n是专门用来对node进行版本管理的. 安装模块和指定node版本 # 安

  • 如何手动实现一个 JavaScript 模块执行器

    如果给你下面这样一个代码片段(动态获取的代码字符串),让你在前端动态引入这个模块并执行里面的函数,你会如何处理呢? module.exports = { name : 'ConardLi', action : function(){ console.log(this.name); } }; node 环境的执行 如果在 node 环境,我们可能会很快的想到使用 Module 模块, Module 模块中有一个私有函数 _compile,可以动态的加载一个模块: export function g

随机推荐