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

How does this expression work? "require('dotenv').config();"

我看到了这个表情:

require('dotenv').config();

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

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

 const express = require('express'); 

之后会像

一样使用
const app = express();

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

导入类型

When you define a type in the package.json file, it will set that import type for the whole project. require() cannot be used in type module and import cannot be used in type 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"

'express'

这是使用 commonJSmodule

导入快递的两种方式
const express = require('express') // commonJS

import express from 'express' // module

const app = express() // initializes express app

CommonJS vs ES Module

ES modules are the standard for JavaScript, while CommonJS is the default in Node. js. The ES module format was created to standardize the JavaScript module system. It has become the standard format for encapsulating JavaScript code for reuse.