簡體   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