使用dotenv-expand(.env)的正确方法

https://github.com/motdotla/dotenv-expand

POSTGRES_DB=postgresdb
POSTGRES_PASSWORD=password
POSTGRES_USER=postgresadmin
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
PORT=3000
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}

使用dotenv-expand是否正确?如果是这样,就我而言它无效。我想创建与上述变量相关的变量:

DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}

但是当我使用process.env.DATABASE_URL进行检查时-它返回了我上面相同的变量,而没有更改相应参数上的${POSTGRES_USER}

import dotenv from 'dotenv';
import dotenvExpand from 'dotenv-expand';

const config = dotenv.config();

dotenvExpand(config);

在这里您可以看到我如何使用dotenv-expand初始化dotenv

nh8341 回答:使用dotenv-expand(.env)的正确方法

使用您的代码,例如:

import dotenv from 'dotenv';
import dotenvExpand from 'dotenv-expand';

const config = dotenv.config();

dotenvExpand(config);

console.log(config);

我收到以下错误:

(node:23421) Warning: To load an ES module,set "type": "module" in the package.json or use the .mjs extension.

将代码更改为:

const dotenv = require('dotenv');
const dotenvExpand = require('dotenv-expand');

const config = dotenv.config();

dotenvExpand(config);

console.log(config);

我得到所需的输出:

{
  parsed: {
    POSTGRES_DB: 'postgresdb',POSTGRES_PASSWORD: 'password',POSTGRES_USER: 'postgresadmin',POSTGRES_HOST: 'localhost',POSTGRES_PORT: '5432',PORT: '3000',DATABASE_URL: 'postgres://postgresadmin:password@localhost:5432/postgresdb'
  }
}

如果您要坚持使用import,请将"type": "module"添加到package.json中。

编辑:

console.log(process.env.DATABASE_URL);工作正常。

我的整个设置:

mkdir dotenv-test && cd dotenv-test
npm init -y
npm install dotenv dotenv-expand
touch .env
rouch .index.js
(copying .env and code)
node index.js
本文链接:https://www.f2er.com/2877691.html

大家都在问