Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 环境变量不能与Typescript和NodeJS一起使用_Node.js_Typescript_Environment Variables - Fatal编程技术网

Node.js 环境变量不能与Typescript和NodeJS一起使用

Node.js 环境变量不能与Typescript和NodeJS一起使用,node.js,typescript,environment-variables,Node.js,Typescript,Environment Variables,My process.env文件包含以下内容: DB_NAME = hello 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 : ${proces

My process.env文件包含以下内容:

DB_NAME = hello
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();
当我运行我的
index.ts
文件时,该文件包含以下内容:

DB_NAME = hello
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

My 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文件不是自动加载的吗

不,您必须使用以下内容(在脚本的一开始)


请注意,如果您的文件名仅为
'.env'
(这是用于此类目的的事实上的标准名称),而不是
'process.env'

,那么您只需调用
.config
,而无需任何参数。应该如何将process.env文件加载到实际的env变量中?process.env文件不会自动加载吗?即使没有,我也尝试过使用dotenv并专门加载它,但这也不起作用。不仅仅是通过节点,但我还没有使用mikro ORM,所以也许你希望这样做?您是如何使用dotenv的?您需要在文件开始时要求
dotenv
并调用
.config
,非常感谢!我在使用
dotenv
时使用了
import
语法,我不知道为什么它不能使用该语法。现在一切都好了D