Node.js'de bir çevresel değişkeni nasıl ayarlayabilirim?


Yanıtlar:


141

Ortam değişkenlerinizi şurada ayarlayabilirsiniz process.env:

process.env['VARIABLE'] = 'value';

-VEYA-

process.env.VARIABLE = 'value';

Düğüm, platformun ayrıntılarına dikkat etmelidir.


4
Yapmanız gerektiğini düşünmüyorum var process = require('process'), süreç mevcut küresel bir değişkendir.
alessioalex

85
Bununla birlikte, bunun yalnızca düğüm sürecinizdeki değişkeni ve çağırdığı tüm alt işlemleri ayarlayacağını unutmayın; örneğin, düğüm süreci çıktığında değişken kümesini kabukta bırakmayacaktır (bir üst sürecin ortamını değiştirmek sisteme bağlıdır ve her zaman mümkün değildir).
ebohlman

2
process.env.variable vs global.variable hakkında fikir veren var mı?
Scott Silvi

3
process.env.VARIABLEdeğişken adı bilinen bir sabitse tamam process.env['VARIABLE'], her durumda çalışır; orijinal soru yeterince ayrıntı belirtmedi, bu nedenle daha çok yönlü örnek daha uygun görünüyordu.
lanzz

3
@BillMorris hayır, herhangi bir işlemin ebeveyninin ortamını değiştirmesi mümkün değil
lanzz

3

Öncelikle bu paketi yüklemelisiniz: - https://github.com/motdotla/dotenv [ npm install dotenv]

Ardından, projenizin kök dizininde bir .env dosyası oluşturmanız gerekir ve orada aşağıdaki gibi değişkenler ekleyebilirsiniz: -

NODE_ENV=PRODUCTION
DATABASE_HOST=localhost

Artık bu değişkenlere kodunuzdan aşağıdaki gibi kolayca erişebilirsiniz: -

require('dotenv').config()
console.log(process.env.NODE_ENV);

Benim için çalıştı, umarım bu yardımcı olur.


1
Dotenv tarafından kullanılan .env dosyası ne kadar güvenlidir? Sırlar .env dosyasındaki ortam dizeleri içindeki düz metinlerse, bu, düğüm kodunuzda düz metin olarak bulundurmaktan daha güvenli mi? Hangisi açıkça hayır-hayırdır?
Ric

0

node v14.2.0 env değişkenini ayarlamak için önce proje ana dizininizde bir dosya adı config.env oluşturun ve ardından ihtiyacınız olan tüm değişkenleri yazın, örneğin

config.env

NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://lord:<PASSWORD>@cluster0-eeev8.mongodb.net/tour-guide?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/tours-test
DATABASE_PASSWORD=UDJUKXJSSJPWMxw

dotenv'i şimdi npm'den yükleyin, dotenv işinizi boşaltacaktır

npm i dotenv

şimdi sunucu başlangıç ​​betiğinizde, benim durumumda server.js env değişkenlerini yüklemek için doenv kullanır.

const dotenv = require('dotenv');
dotenv.config({ path: './config.env' });
const app = require('./app'); // must be after loading env vars using dotenv

//starting server
const port = process.env.PORT || 3000;
app.listen(port, () => {
  console.log(`app running on port ${port}...`);
});

Ekspres kullanıyorum, app.js'deki tüm ekspres kodumu referansınız için buraya yazıyorum

const express = require('express');
const tourRouter = require('./route/tourRouter');
const userRouter = require('./route/userRouter');

if (process.env.NODE_ENV === 'development') {
  console.log('mode development');
}
app.use(express.json());

app.use('/api/v1/tours', tourRouter);
app.use('/api/v1/users', userRouter);

module.exports = app;

şimdi sunucunuzu konsolu kullanarak başlatın , nodemon kullanıyorum, npm'den kurabilirsiniz;

nodemon server.js
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.