process.env["APP_PATH"] 和 process.env.APP_PATH 之间的区别

Difference between process.env["APP_PATH"] and process.env.APP_PATH

我目前正在做一个 nestjs 项目。并且该项目的开发人员使用 .env 文件在他以两种不同方式访问 .env 文件的属性的代码中保留应用程序路径和一些其他所需信息(我无权访问该文件)。

第一种方式

if (process.env.NODE_ENV === 'development') {
    app.enableCors({ origin: 'http://localhost:3000' });
  }

第二种方式

 PDFModule.register({
      isGlobal: true,
      view: {
        root: join(process.env["APP_PATH"], 'resources/pdf'),
        engine: 'mustache',
      },
    }),

我想知道使用 process.env.NODE_ENVprocess.env["APP_PATH"] 访问 .env 文件中的属性有什么不同?以及如何在 .env 文件中正确指定应用程序路径。

yeah i know what value to assign it but what i'm asking is the difference between two access methods with . and []

您提到的 [] 是 ECMAScript 2015 中引入的 Computed Property names。因此有两种方法可以访问对象 属性 - 使用 [].

此外,当您不知道环境变量 NODE_ENV 但它在另一个变量中可用时,[] 也很方便。

示例let myEnvVariable = "NODE_ENV";

在这种情况下 process.env[myEnvVariable]process.env.NODE_ENVprocess.env["NODE_ENV"]

相同