Environment Variables
使うべきものの中にdottonvというものがあります。
https://www.npmjs.com/package/dotenv
dotenv
が有名です.この
Package
はどんな仕事をしていますか.env
のファイルを読んで、各変数をprocess.env
の中に入れます.では
process.env
を試してみますconsole.log
からconsole.log(process.env);
import express from "express";
一番上に書いてあります.間違いがあるかもしれない.確認します.コンソールをチェックすると理解できない変数がたくさん見つかりました.
これは
server.js
です.process.env
の環境.nodeJS process
を試してみましょう.console.log(process.env.COOKIE_SECRET, process.env.DB_URL);
import express from "express";
次に、COOKIE_SECRET
およびconsole.log
を試します.現在、両方ともDB_URL
です.console.log
をインストールします.undefined
コンソールからdotenv
と入力します.vsc
は多くの言語で表現されている.npm i dotenv
PythonとJavaScriptのほか他の言語にも現れている.
dotenv
が取り付けられています.どのように使えばいいですか?require('dotenv').config()
console.log(process.env) // remove this after you've confirmed it working
これでいいです.そしてあなたが言ったように.As early as possible in your application, import and configure dotenv:
「あなたのアプリケーションでできるだけ先に」とはどういう意味ですか.例えば、この部分ではdotenv
およびdotenv
console.log(process.env.COOKIE_SECRET, process.env.DB_URL);
require("dotenv").config();
console.log(process.env.COOKIE_SECRET, process.env.DB_URL);
dotenv
とrequire
がどんなものか見てみましょう確認します.
undefined undefined
ご覧のように、SECRET
とconsole.log
があります.そして
undefined
の後のundefined
を見ます.asdlfjaslkdfj12345136356aljga mongodb://127.0.0.1:27017/wetube
ここが見えたrequire("dotenv")
は、ファイルを読み取り、console.log
に追加する.そして、先ほどお話ししたように、できるだけ最初に使うべきです.
例えば、ここでは
dotenv
およびenv
が現れる.最初の
undefined
.そしてundefined
をすると.値は
console.log
とrequire("dotenv")
です.しかし、間違いがあります.エラーによると、
COOKIE_SECRET
にはDB_URL
はないという.ではここで全部db.js
を試してみます.そしてその動作原理を確認します.今はまだ仕事をしていません.
現在
DB_URL
はconsole.log
の中にありますさらに、
require("dotenv")
およびserver.js
は、COOKIE_SECRET
およびDB_URL
の間にある.しかし、
db.js
からconsole.lgo
、db.js
はいずれもCOOKIE_SECRET
である.なぜなら、
DB_URL
が最初に実行されなかったからです.アプリケーションがどのように起動されるかは、
undefined
から始まり、require("dotenv")
から始まります. "scripts": {
"dev": "nodemon --exec babel-node src/init.js"
},
package.json
を見てみましょうimport "./db";
import "./models/Video";
import "./models/User";
import app from "./server";
const PORT = 4000;
const handleListening = () =>
console.log(`✅ Server listening on port http://localhost:${PORT} 🚀`);
app.listen(PORT, handleListening);
現在、init.js
とinit.js
はありません.まだ
COOKIE_SECRET
やってないから.DB_URL
に移動しますrequire("dotenv")
のrequire("dotenv")
をserver.js
に移す.require("dotenv").config();
import "./db";
import "./models/Video";
import "./models/User";
import app from "./server";
const PORT = 4000;
const handleListening = () =>
console.log(`✅ Server listening on port http://localhost:${PORT} 🚀`);
app.listen(PORT, handleListening);
それはすべての問題を解決します.なぜならrequire("dotenv")
init.js
とrequire("dotenv")
に近づくことができます.COOKIE_SECRET
からconsole.log(process.env.COOKIE_SECRET, process.env.DB_URL);
したがって、この部分ではDB_URL
と定義される.db.js
からimport app from "./server";
ここから降りるとDB_URL
あります.init.js
からapp.use(
session({
secret: process.env.COOKIE_SECRET,
resave: false,
saveUninitialized: false,
store: MongoStore.create({ mongoUrl: process.env.DB_URL }),
})
);
ではserver.js
も定義されていますが、今は間違いないはずです.では確認してみましょう間違いが向こうからやってきた.まだ起動していません.問題は何ですか.
問題は2つの方法で
server.js
を作ることです.一つは
COOKIE_SECRET
で、もう一つはimport
です.この方法を使用する場合は、
require
を使用したいすべてのファイルにimport
を追加する必要があります.dotenv
で使わないと、消してしまいます.ただし、必要なすべてのファイルの上部require
を入れます.今運行すれば使いやすいです.しかし、これは面倒です.今面倒なのは、
init.js
を使用しているすべてのファイルの上で使用することです.したがって、
require
をprocess.env
に変更した部分はrequire
として修正される.import
からimport "dotenv/config";
これで1行追加すればいいです.サーバーを確認してください.よく機能しています.import
からinit.js
、さらにdb.js
に至ることができます.import mongoose from "mongoose";
console.log(process.env.DB_URL);
mongoose.connect(process.env.DB_URL, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
また、process.env
でも同様のことができます.console.log(process.env.COOKIE_SECRET);
app.use(
session({
secret: process.env.COOKIE_SECRET,
resave: false,
saveUninitialized: false,
store: MongoStore.create({ mongoUrl: process.env.DB_URL }),
})
);
ここからconsole.log
server.js
が得られる.すべてが定義されます.mongodb://127.0.0.1:27017/wetube
asdlfjaslkdfj12345136356aljga
✅ Server listening on port http://localhost:4000 🚀
✅Connected to DB
COOKIE_SECRET
とconsole.log
が出てきてよかったです.しかし、これらの値は
COOKIE_SECRET
には転送されません.コードにもありません.ファイルにしかありません.この書類は秘密にしておいてもいいです.
次のセクションでは、リボンログインを作成します.フラグ登録には
DB_URL
やVersion Control(git)
などが必要です.だから今回は設定がいいです.フラグの
token
やsecret
などをtoken
に入れます.ファイルの値にアクセスする方法を学んだからです.
secret
だけ覚えておけばいいです.もちろん、キー値は同じであるべきです.
dotenv
をprocess.env.{키값}
フォルダから削除することを忘れないでください..env
ファイルをsrc
の隣に置くべきです.Reference
この問題について(Environment Variables), 我々は、より多くの情報をここで見つけました https://velog.io/@0_cyberlover_0/Environment-Variablesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol