我看到了这个表达式:
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"
"表达">
这是用commonJS
或module
导入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代码以供重用的标准格式。