一尘不染

节点__dirname未定义

node.js

从节点手册中,我可以使用来获得文件的目录__dirname,但是从REPL中,这似乎是未定义的。这是我的误解还是错误在哪里?

$ node
> console.log(__dirname)
ReferenceError: __dirname is not defined
    at repl:1:14
    at REPLServer.eval (repl.js:80:21)
    at Interface.<anonymous> (repl.js:182:12)
    at Interface.emit (events.js:67:17)
    at Interface._onLine (readline.js:162:10)
    at Interface._line (readline.js:426:8)
    at Interface._ttyWrite (readline.js:603:14)
    at ReadStream.<anonymous> (readline.js:82:12)
    at ReadStream.emit (events.js:88:20)
    at ReadStream._emitKey (tty.js:320:10)

阅读 342

收藏
2020-07-07

共1个答案

一尘不染

__dirname仅在脚本中定义。在REPL中不可用。

尝试制作脚本 a.js

console.log(__dirname);

并运行它:

node a.js

您将看到__dirname打印。

添加了背景说明:__dirname表示“此脚本的目录”。在REPL中,您没有脚本。因此,__dirname将没有任何实际意义。

2020-07-07