【问题标题】:Using the Node REPL to log the value of __dirname使用 Node REPL 记录 __dirname 的值
【发布时间】:2018-10-12 19:14:31
【问题描述】:

如果我编写一个包含console.log(__dirname); 的脚本,则会记录__dirname 的值。但是,如果我对 Node REPL 尝试相同的操作,就会发生这种情况:

 > console.log(__dirname)
 ReferenceError: __dirname is not defined

想法?

【问题讨论】:

标签: javascript node.js node-repl


【解决方案1】:

来自d512写的What is the difference between __dirname and ./ in node.js?

在 Node.js 中,__dirname 始终是当前正在执行的脚本所在的目录(参见此处)。因此,如果您在 /d1/d2/myscript.js 中键入 __dirname,则值将是 /d1/d2。

文档说__dirname 等于path.dirname。如果你在 repel 中输入path.dirname,它会告诉你:

> console.log(path.dirname)
[Function: dirname]
undefined

现在我的猜测是:由于它是一个 repl,因此您没有存储在磁盘某处的文件。它只是读取命令,对其进行评估并将其打印到控制台。

在 REPLS 方面有更多经验的人可能会给出更长更详细的答案,但我认为这阐明了这个概念。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 2015-08-31
    相关资源
    最近更新 更多