มีวิธีอ่านตัวแปรสภาพแวดล้อมในรหัส Node.js หรือไม่
os.environ['HOME']อย่างเช่นงูหลาม
มีวิธีอ่านตัวแปรสภาพแวดล้อมในรหัส Node.js หรือไม่
os.environ['HOME']อย่างเช่นงูหลาม
คำตอบ:
process.env.ENV_VARIABLE
ในกรณีที่ENV_VARIABLEเป็นชื่อของตัวแปรที่คุณต้องการเข้าถึง
ดูเอกสารสำหรับ Node.jsprocess.env
process.env.FOO = "foo";โรงงาน
process.envถูกทำให้สะอาดด้วยเหตุผลด้านความปลอดภัย มีเฉพาะตัวแปรที่ขึ้นต้นด้วยREACT_ENV_เท่านั้น ดู: github.com/facebookincubator/create-react-app/blob/master/…
REACT_APP_
เมื่อใช้Node.jsคุณสามารถดึงตัวแปรสภาพแวดล้อมโดยใช้คีย์จากprocess.envวัตถุ:
ตัวอย่างเช่น
var mode = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'
นี่คือคำตอบที่จะอธิบายการตั้งค่าตัวแปรสภาพแวดล้อมใน node.js
process.envถูกสร้างไว้ใน node.js api
หากคุณต้องการใช้คีย์สตริงที่สร้างขึ้นในโปรแกรม Node.js คุณพูดคุณสามารถใช้var v = 'HOME'
process.env[v]
มิฉะนั้นprocess.env.VARNAMEจะต้องฮาร์ดโค้ดในโปรแกรมของคุณ
process.env['HOME']?
เพื่อดึงตัวแปรสภาพแวดล้อมใน Node.JS คุณสามารถใช้process.env.VARIABLE_NAMEแต่อย่าลืมว่าการกำหนดคุณสมบัติบน process.env จะแปลงค่าให้เป็นสตริงโดยปริยาย
แม้ว่าไฟล์. env ของคุณจะกำหนดตัวแปรเช่นSHOULD_SEND = falseหรือSHOULD_SEND = 0ค่าจะถูกแปลงเป็นสตริง ( “ false” และ“ 0”ตามลำดับ) และไม่ตีความว่าเป็นบูลีน
if (process.env.SHOULD_SEND) {
mailer.send();
} else {
console.log("this won't be reached with values like false and 0");
}
คุณควรทำการตรวจสอบอย่างชัดเจนแทน ฉันพบขึ้นอยู่กับชื่อสภาพแวดล้อมไปไกล
db.connect({
debug: process.env.NODE_ENV === 'development'
});
คุณสามารถใช้แพ็คเกจenvเพื่อจัดการตัวแปรสภาพแวดล้อมของคุณต่อโครงการ:
.envไฟล์ภายใต้ไดเรกทอรีโครงการและวางตัวแปรทั้งหมดของคุณไว้ที่นั่นrequire('dotenv').config();เสร็จสิ้น process.env.ENV_NAMEตอนนี้คุณสามารถเข้าถึงตัวแปรสภาพแวดล้อมของคุณด้วย
envไลบรารี
envdirยูทิลิตี
node-specific
ทำไมไม่ใช้ในไดเรกทอรีผู้ใช้ใน.bash_profileไฟล์ดังนั้นคุณไม่จำเป็นต้องส่งไฟล์ที่มีตัวแปรของคุณไปผลิต
envในหน้าต่างเชลล์อื่นในขณะที่กระบวนการโหนดกำลังทำงานหรือในเชลล์เดียวกันหลังจากกระบวนการโหนดจบการทำงาน