繁体   English   中英

这个表达式是如何工作的? “需要('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(); 看起来不同,它并没有像常用的方法那样被使用。

导入类型

当您在 package.json 文件中定义type时,它将为整个项目设置该导入类型。 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 与 ES 模块

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM