[英]Environment variables not working with Typescript and NodeJS
我的 process.env 文件有這個:
DB_NAME = hello
當我運行包含以下內容的index.ts
文件時:
import { MikroORM } from '@mikro-orm/core';
import { __prod__ } from './constants';
import { Post } from './entities/Post';
import microConfig from './mikro-orm.config';
console.log(`console log is : ${process.env.DB_NAME}`);
const main = async () => {
const orm = await MikroORM.init(microConfig);
const post = orm.em.create(Post, { title: 'my first post' });
orm.em.persistAndFlush(post);
};
main();
它給出了未定義的process.env.DB_NAME
值。
我的 package.json 設置如下:
{
"name": "shreddit-backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node dist/index.js",
"dev": "nodemon dist/index.js",
"watch": "tsc -w",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node": "^14.14.10",
"nodemon": "^2.0.6",
"ts-node": "^9.0.0",
"typescript": "^4.1.2"
},
"dependencies": {
"@mikro-orm/cli": "^4.3.2",
"@mikro-orm/core": "^4.3.2",
"@mikro-orm/migrations": "^4.3.2",
"@mikro-orm/postgresql": "^4.3.2",
"pg": "^8.5.1"
},
"mikro-orm": {
"useTsNode": true,
"configPaths": [
"./src/mikro-orm.config.ts",
"./dist/mikro-orm.config.js"
]
}
}
我什至嘗試使用dotenv
但這也無法解決問題。 我錯過了什么嗎? 非常感謝。
process.env 文件不會自動加載嗎?
不,您將不得不使用dotenv.config
如下(在腳本的開頭)。
require('dotenv').config({ path: './process.env' })
// the rest of your code
請注意,如果您的文件僅命名為'.env'
(用於此類目的的事實上的標准名稱)而不是'process.env'
,則您可以在沒有任何 arguments 的情況下簡單地調用.config
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.