【问题标题】:What is the difference between require(__dirname + path) and require(./path)require(__dirname + path) 和 require(./path) 有什么区别
【发布时间】:2015-07-28 17:38:29
【问题描述】:

根据这个问题:What is the difference between __dirname and ./ in node.js?这两行应该是一样的:

require(__dirname + '/folder/file.js');
require('./folder/file.js');

而且我总是习惯使用第二个选项。但是现在一个项目,我接手了,以前的开发者每次都用require(__dirname + ...)

我个人认为它更难阅读,我想改变它,但也许我缺少这种语法的一些优点?还是它是首选版本,而我一直都做错了?

以防万一,这些库有时在启用 es6 的 node.js 上运行,有时在 io.js 上运行(没有额外的标志)。

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    使用require() 没有区别,使用__dirname 有点多余。模块加载器将负责为您正确解析路径。

    当使用fs 之类的fs.readFile 方法之一时,如果您当前的工作目录不等于__dirname,则会有所不同。如果我想读取与我的脚本位于同一目录中的名为 file.txt 的文件的内容,我会这样做:

    var Fs = require('fs');
    var Path = require('path');
    
    Fs.readFile(Path.join(__dirname, 'file.txt'), ...);
    

    那么当我启动执行此代码的节点进程时,我的 cwd 是什么并不重要。

    【讨论】:

      猜你喜欢
      • 2018-11-29
      • 1970-01-01
      • 2013-03-06
      • 2013-05-16
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      相关资源
      最近更新 更多