这个表达式是如何工作的? "require('dotenv').config();"



我看到了这个表达式:

require('dotenv').config();

在NodeJS项目中的server.js文件的开头。我只是想知道它是如何工作的,它是做什么的?

因为我几乎总是在require表达式行之前看到一个变量,比如

const express = require('express'); 

之后会像

一样使用
const app = express();

require('dotenv').config();看起来不一样,没有像普通方法那样使用。

导入类型

当您在包中定义type时。Json文件,它将为整个项目设置该导入类型。require()不能用于module类型,import不能用于commonJS类型

例子package.json

{
"name": "stack",
"version": "1.0.0",
"description": "",
"main": "main.js",
"type": /* either commonJS or module */
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC"
}

设置导入类型后,下面是两种类型的示例

// if "type": "commonJS"
const package = require('package')
// if "type": "module"
import package from 'package'

"dotenv">

这是读取.env文件的环境变量模块。下面是导入它的两种方法,无论你使用的类型是commonJS还是module

require('dotenv').config() // commonJS
import {} from 'dotenv/config' // module

的工作原理如下:

.env文件

TOKEN=THIS_IS_MY_TOKEN

然后在.js文件

/* after importing 'dotenv' one of the two ways listed above */
console.log(process.env.TOKEN) // outputs "THIS_IS_MY_TOKEN"

"表达">

这是用commonJSmodule导入express的两种方式

const express = require('express') // commonJS
import express from 'express' // module
const app = express() // initializes express app

CommonJS vs ES Module

ES模块是JavaScript的标准模块,而CommonJS是Node的默认模块。js。ES模块格式是为了标准化JavaScript模块系统而创建的。它已经成为封装JavaScript代码以供重用的标准格式。

最新更新