首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用dotenv和TypeScript的环境变量

使用dotenv和TypeScript的环境变量
EN

Stack Overflow用户
提问于 2020-06-10 00:46:24
回答 8查看 56.6K关注 0票数 33

我创建了这个.env文件:

代码语言:javascript
运行
复制
TYPE=xxx
HOST=xxx,
PORT=xxx,
USERNAME=xxx,
PASSWORD=xxx,
DATABASE=xxx,

在我的文件中,我是这样使用的:

代码语言:javascript
运行
复制
import * as dotenv from "dotenv";

dotenv.config();

export const typeOrmConfig: TypeOrmModuleOptions = {
    port: process.env.PORT
}

但是我只能使用.env文件中的port变量,而不能使用其他变量,有人能告诉我为什么我不能使用其他变量吗?

EN

回答 8

Stack Overflow用户

发布于 2020-06-10 01:11:29

实际上,您已经定义了.env文件的路径

试着这样做

代码语言:javascript
运行
复制
import * as dotenv from "dotenv";
dotenv.config({ path: __dirname+'/.env' });

也可以试试这个

代码语言:javascript
运行
复制
require('dotenv').config({ path: __dirname+'/.env' });

根据需要更改.env文件的路径

参考:https://www.npmjs.com/package/dotenv

票数 56
EN

Stack Overflow用户

发布于 2021-07-29 18:37:25

如果您得到未定义的值,如果您使用ES6,则需要按如下方式导入(.env文件必须在工程根目录下):

如何将dotenv与import一起使用?

节点

  • 预加载dotenv: approach)

  • Create --需要dotenv /配置(注意:您不需要使用此approach)
  1. Import dotenv / index.js而不是dotenv导入dotenv()。注意:您不需要调用dotenv.config(),必须使用此节点通过命令行或环境变量传递选项一个单独的文件,该文件将首先执行配置,如#133

的此注释中所述

您必须在项目的app.ts文件(第一个)示例中导入express:

app.ts

代码语言:javascript
运行
复制
//here
import 'dotenv/config'

import express from 'express'
import { userRouter } from './routes/user'

const app = express()

app.use(`/users`, userRouter)
app.listen(process.env.PORT, () => {
    console.log(`running`)
})

现在可以在项目中的任何位置使用它

read the documentation来说永远是件好事

票数 15
EN

Stack Overflow用户

发布于 2021-07-01 17:44:57

我的项目安装了eslint,因此我必须禁用import/first规则

代码语言:javascript
运行
复制
/* eslint-disable import/first */
require('dotenv').config();

import Koa from 'koa';

import { Logger } from './utils/loggers';
import { app } from './app';

const LOGGER = Logger();
const port = parseInt(process.env.PORT as string, 10) || 8081;

const server = (server: Koa) => {
  server.listen(port, () => {
    LOGGER.info(`> Ready on http://localhost:${port}`);
  });
};

server(app());

我们还可以使用:

代码语言:javascript
运行
复制
import 'dotenv/config'

代码语言:javascript
运行
复制
require('dotenv').config({path:path_to_dotenv});

更加灵活。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62287709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档