NodeJS [eval]在__filename的上下文中是什么?

cetgtptt  于 2023-04-29  发布在  Node.js
关注(0)|答案(1)|浏览(139)

我想看看当我将参数__filename传递给节点二进制文件时会返回什么文件名。在结果中,我希望看到节点二进制文件的路径,这将评估命令,但我得到了以下结果:

node -p __filename
[eval]

什么是[eval]?我该怎么解释呢?
我的节点版本如下:

node --version
v14.17.4
dfddblmv

dfddblmv1#

参见 www.example.com
你应该在你的脚本中使用它
script.js:

console.log(__filename);

然后运行:

node script.js

它将打印脚本的实际全名。
当一个人

node -p 'console.log(__filename)'
[eval]
undefined

无法定义__文件名,因为没有脚本文件。也许是节点。js有eval()函数,用来获取文件名值。但在某些情况下,它会失败,或者不被调用。
参见Why is __dirname not defined in node REPL?

相关问题