require(__ dirname + path)和require(./ path)之间有什么区别?
根据这个问题: node.js中的__dirname和./s有什么区别? 这两行应该是一样的:
require(__dirname + '/folder/file.js'); require('./folder/file.js');
我总是习惯使用第二个选项。 但是现在一个项目,我接手了,以前的开发者每次都require(__dirname + ...)
。
就我个人而言,我觉得这很难阅读,我想改变它,但也许有这个语法我缺less一些优势? 或者它是首选版本,我一直在做错的?
为了防万一,这些库有时会在启用了es6的node.js上运行,有时在io.js上运行(没有附加标志)。
当使用require()
时没有区别,使用__dirname
是多余的。 模块加载器将负责为您正确parsingpath。
当使用fs.readFile
之类的fs
方法时,如果当前工作目录不等于__dirname
, __dirname
。 如果我想读取与我的脚本相同的目录中名为file.txt的文件的内容,我可以这样做:
var Fs = require('fs'); var Path = require('path'); Fs.readFile(Path.join(__dirname, 'file.txt'), ...);
那么当我启动执行这个代码的节点进程时,不pipe我的cwd是什么。