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);
dotenvrequireがどんなものか見てみましょう
確認します.
undefined undefined
ご覧のように、SECRETconsole.logがあります.
そしてundefinedの後のundefinedを見ます.
asdlfjaslkdfj12345136356aljga mongodb://127.0.0.1:27017/wetube
ここが見えたrequire("dotenv")は、ファイルを読み取り、console.logに追加する.
そして、先ほどお話ししたように、できるだけ最初に使うべきです.
例えば、ここではdotenvおよびenvが現れる.
最初のundefined.そしてundefinedをすると.
値はconsole.logrequire("dotenv")です.しかし、間違いがあります.
エラーによると、COOKIE_SECRETにはDB_URLはないという.ではここで全部db.jsを試してみます.
そしてその動作原理を確認します.今はまだ仕事をしていません.
現在DB_URLconsole.logの中にあります
さらに、require("dotenv")およびserver.jsは、COOKIE_SECRETおよびDB_URLの間にある.
しかし、db.jsからconsole.lgodb.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.jsinit.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.jsrequire("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を使用しているすべてのファイルの上で使用することです.
したがって、requireprocess.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.logserver.jsが得られる.すべてが定義されます.
mongodb://127.0.0.1:27017/wetube
asdlfjaslkdfj12345136356aljga
✅ Server listening on port http://localhost:4000 🚀
✅Connected to DB
COOKIE_SECRETconsole.logが出てきてよかったです.
しかし、これらの値はCOOKIE_SECRETには転送されません.
コードにもありません.ファイルにしかありません.この書類は秘密にしておいてもいいです.
次のセクションでは、リボンログインを作成します.フラグ登録にはDB_URLVersion Control(git)などが必要です.
だから今回は設定がいいです.フラグのtokensecretなどをtokenに入れます.
ファイルの値にアクセスする方法を学んだからです.secretだけ覚えておけばいいです.
もちろん、キー値は同じであるべきです.dotenvprocess.env.{키값}フォルダから削除することを忘れないでください..envファイルをsrcの隣に置くべきです.