我有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_PASSWORD
和user:process.env.MONGO_USER
等,因此,在读取.env
文件时出现问题。我知道.env
文件具有这些值,并且该文件位于UTF-8中,不带引号等。.env
文件与其他服务相同,在其余服务中都可以正常工作,但是我不知道为什么这里不读。
有什么主意吗?
编辑:
另外,我在console.log(process.env);
文件中放入了config.ts
,它显示的值是这样的:
但是,例如,.env
中没有值,在图片中有一个名为COMPUTERNAME
的值,所以如果我将console.log(process.env.COMPUTERNAME);
放进去,则会得到:IBM-NOT87
为什么没有获取.env文件?