当前位置: 首页 > 面试题库 >

节点__dirname未定义

喻渊
2023-03-14
问题内容

从节点手册中,我可以使用来获得文件的目录__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)

问题答案:

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

尝试制作脚本 a.js

console.log(__dirname);

并运行它:

node a.js

您将看到__dirname打印。

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



 类似资料:
  • 我试图定义一些endpoint,并使用进行测试。在中,我有: 但是当我运行时,我会得到以下错误: 我如何解决这个问题?

  • 我收到此意外错误nodejs(Express)。每当我需要控制台时。文件或请求。文件,未定义为控制台 三个文件如下: 用于注册 处理所有multer配置 所有文件的父级

  • 我不知道我做错了什么,因为我对另一个程序使用了同样的方法,它完美地工作了... 提前致谢

  • 问题内容: 我在运行节点应用程序时使用该标志以使用ES6模块。 但是,当我使用此标志时,该元变量不可用。是否存在另一种方法来获取与该模式兼容的存储在其中的相同字符串? 问题答案: 从Node.js 10.12开始,有一种替代方案,不需要跨平台创建多个文件并处理文件名中的特殊字符:

  • 问题内容: 我正在开发一个NodeJs应用程序,该应用程序从FB接收一个事件并将其放入本地数据库。对于api查询首页中的每个事件,除最后一个事件外,一切正常。 我收到以下错误: [2016年12月1日,下午1:48:39] TypeError:无法读取IncomingMessage上未定义的属性“名称”。(/home/node/virgo/app.js:217:32)在IncomingMessag

  • 问题内容: 我在看的NodeJS / expressjs和看到不同的教程请使用,或只。 例子: 我尝试了所有这些,它们似乎都起作用了。相对路径应该使用哪一个? 我也看过和。有区别吗?我应该使用什么? 问题答案: 几乎所有以文件路径作为参数的函数(除外)都将使用模块中的函数读取或写入它们。 fs模块的Node.js文档说: 可以使用文件名的相对路径,但是请记住,该路径将相对于process.cwd(