gpt4 book ai didi

node.js - NodeJS 无法识别 .env 文件

转载 作者:行者123 更新时间:2023-12-03 12:16:16 25 4
gpt4 key购买 nike

我有 5 个 NodeJS 服务在运行,但其中一个有问题。

这是nodemon.json文件:

{
"watch": ["**/*.ts"],
"ext": "ts,json",
"ignore": ["./test/*.ts"],
"exec": "node -r ts-node/register -r dotenv/config Index.ts dotenv_config_path=$(pwd)/.env",
"env": {
"NODE_ENV": "development"
}
}

它与其他服务相同。当我跑 npm run dev我收到了错误消息,具体取决于从 .env 文件中获取的值,例如:
const LOCAL_CONFIGURATION = {
PORT_APP: 8082,
MONGODB: {
SERVER: process.env.MONGO_DTE,
AUTH: {
auth: {
password:process.env.MONGO_PASSWORD,
user:process.env.MONGO_USER
}
},
},
MS_NOTIFICACION: "http://localhost:8089/notificacion",
ELASTIC_PATH: process.env.ELASTIC_PATH,
...COMMON,
};

第一条错误信息是: ConfigurationError: Missing node(s) option产生该消息是因为它没有从 process.env.ELASTIC_PATH 读取值,但是如果我输入一个像“ http://with.the.correct.url ”这样的硬编码值并且它再次尝试运行,我会收到另一个错误:
Error: Credentials must be provided when creating a service client该错误是因为它试图读取 password:process.env.MONGO_PASSWORDuser:process.env.MONGO_USER
等等,所以,阅读 .env 有问题文件。我知道 .env文件有这些值,文件是 UTF-8,没有引号等。 .env file 与其他服务是相同的文件,它在其他服务中工作正常,但我不知道为什么这里没有被读取。

任何的想法?

编辑:

enter image description here

另外,我放了一个 console.log(process.env);config.ts文件,它显示如下值:

enter image description here

但是没有来自 .env 的值例如,在图片中有一个名为 COMPUTERNAME 的值。所以如果我把 console.log(process.env.COMPUTERNAME);我得到: IBM-NOT87
为什么没有得到 .env 文件?

最佳答案

似乎您需要要求/配置 dotenv . Docs :

As early as possible in your application, require and configure dotenv.

require('dotenv').config()

关于node.js - NodeJS 无法识别 .env 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61038365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com