如果我编写包含console.log(__dirname);
的脚本,请记录__dirname
的值。但是,如果我尝试相同的节点REPL,就会发生这种情况:
> console.log(__dirname)
ReferenceError: __dirname is not defined
思想?
答案 0 :(得分:1)
来自What is the difference between __dirname and ./ in node.js?
撰写的d512在Node.js中,
__dirname
始终是当前正在执行的脚本所在的目录(请参阅此内容)。因此,如果您在/d1/d2/myscript.js中输入__dirname
,则值为/ d1 / d2。
文档说__dirname
等于path.dirname
。如果您在排斥中输入path.dirname
,它会告诉您:
> console.log(path.dirname)
[Function: dirname]
undefined
现在我的猜测是:因为它是一个repl,所以你没有一个存储在磁盘上某处的文件。它只是读取命令,对其进行评估并将其打印到控制台。
在REPLS上有更多经验的人可能会提供更长更详细的答案,但我认为这就是这个概念。