zoukankan      html  css  js  c++  java
  • NodeJs:module.filename、__filename、__dirname、process.cwd()和require.main.filename 解惑

    背景

    一直存在一个疑惑,require()坐标路径是啥?fs.readFile()的坐标路径又是啥?总之,需要路径的方法,我总有这样的疑问。今天就实验一下,给弄清楚。

    实验

    实验素材

    app.js

     1 //执行 node E:\node_study\file_path_study\app.js
     2 
     3 console.log('*** app start ***');
     4 
     5 console.log('***      module.filename = ' + module.filename + ' ***');
     6 console.log('***           __filename = ' + __filename + ' ***');
     7 console.log('***            __dirname = ' + __dirname + ' ***');
     8 console.log('***        process.cwd() = ' + process.cwd() + ' ***');
     9 console.log('*** require.main.filename= ' + require.main.filename + ' ***');
    10 
    11 console.log('*** app end ***');
    12 
    13 console.log('');
    14 
    15 require('./lib/test');

    test.js

    1 console.log('*** app start ***');
    2 
    3 console.log('***      module.filename = ' + module.filename + ' ***');
    4 console.log('***           __filename = ' + __filename + ' ***');
    5 console.log('***            __dirname = ' + __dirname + ' ***');
    6 console.log('***        process.cwd() = ' + process.cwd() + ' ***');
    7 console.log('*** require.main.filename= ' + require.main.filename + ' ***');
    8 
    9 console.log('*** app end ***');

    结果

    结论

    • module.filename:开发期间,该行代码所在的文件。
    • __filename:始终等于 module.filename。
    • __dirname:开发期间,该行代码所在的目录。
    • process.cwd():运行node的工作目录,可以使用  cd /d 修改工作目录。
    • require.main.filename:用node命令启动的module的filename, 如 node xxx,这里的filename就是这个xxx。

    require()方法的坐标路径是:module.filename;fs.readFile()的坐标路径是:process.cwd()。

  • 相关阅读:
    【halcon】学习记录
    【QT】常用类
    【QT】宏
    机器视觉名词解释
    单元测试
    【MFC】VS2017新建完MFC后,没有界面,只有代码
    【MFC】学习与问题整合
    函数重载(overload)和函数重写(override)
    工作记录+反思
    【转】MapReduce:默认Counter的含义
  • 原文地址:https://www.cnblogs.com/happyframework/p/3080910.html
Copyright © 2011-2022 走看看