2016-04-13 13 views
0

Bir node.js picker yazdım ve çevresel değişkenleri getirmem gerekiyor.Çevresel Değişkenleri .bash_profile'den javascript'e nasıl getirebilirim?

Bu nasıl doğru yapılır? Bunu Rails'de, geçmişte nasıl yaptığımı ve internetten kazmaya çalıştığımı hatırladığımdan birkaç yöntem denedim ama henüz işe başlamadım.

Teşekkürler!

Benim son deneyin:

var clientToken = process.env.AKAMAI_CLIENT_TOKEN; 
    var clientSecret = process.env.AKAMAI_ACCESS_TOKEN; 
    var accessToken = process.env.AKAMAI_SECRET; 
    var host = process.env.AKAMAI_HOST; 

    var config = { 
    clientToken: clientToken, 
    clientSecret: clientSecret, 
    accessToken: accessToken, 
    host: host, 
    queue: "default" 
    }; 

çok teşekkürler!

eklenti: Hata:

readline.js:925 
      throw err; 
      ^

TypeError: Cannot read property 'replace' of null 
    at Authenticator.makeDataToSign (/Users/homeImac/purger/node_modules/akamai-ccu-purge/src/auth.js:88:23) 
at Authenticator.generateSignature (/Users/homeImac/purger/node_modules/akamai-ccu-purge/src/auth.js:100:25) 
at Authenticator.generateAuthHeaderForRequest (/Users/homeImac/purger/node_modules/akamai-ccu-purge/src/auth.js:122:24) 
at Purger.purgeObjects (/Users/homeImac/purger/node_modules/akamai-ccu-purge/src/purger.js:30:39) 
at /Users/homeImac/purger/node_modules/akamai_purge/newPurge.js:28:10 
at /Users/homeImac/purger/node_modules/akamai_purge/getUrl2.js:9:14 
at /Users/homeImac/purger/node_modules/prompt/lib/prompt.js:316:32 
at /Users/homeImac/purger/node_modules/utile/node_modules/async/lib/async.js:142:25 
at assembler (/Users/homeImac/purger/node_modules/prompt/lib/prompt.js:313:9) 
at /Users/homeImac/purger/node_modules/prompt/lib/prompt.js:322:32 

Sadece yanı tüm üsleri kapsayacak şekilde benim bash kodunu ekleriz. Hala benim için çalışmıyor.

export AKAMAI_CLIENT_TOKEN="dfghdfhdfhgfhdfghdfghfghfdghfg" 
export AKAMAI_ACCESS_TOKEN="fhdfghdfghdfhdfghfhfghdfg" 
export AKAMAI_SECRET="dfhfdghdfhgfdhgfhdhgfhdgfh=" 
export AKAMAI_HOST="fghghdfhdhhgfdhgfhdghdfgf.purge.akamaiapis.net" 

Bu yalnızca bash dosyasına ihtiyacım var. 3. satırın sonunda bir = var. Bu herhangi bir sorun neden olmaz? Yardımınız için teşekkürler!

Ek not: Aşağıda aldığım ipucu sayesinde değerler etrafında tırnak ekledim. Bilgiyi hala konsolide edebilirim ama yine de bu hatayı alıyorum.

+2

'process.env.XXX' işlevinin başlayabildiğini görmek için echo $AKAMAI_HOST numarasını kullanmayı deneyin. Beklediğiniz değerleri almadınız mı? Ortam değişkenlerinizi * yazdırmadan önce denediniz mi? Düğüm çalışıyor ve ardından Düğümün aynı değerleri aldığını doğruladınız mı? –

+0

İkinci kod parçası doğru. Hangi anlamda işe yaramıyor? Ortam değişkenlerinin beklediğinizi içerip içermediğini görmek için 'console.log()' çağrılarını eklediniz mi? – Pointy

+0

Bu yüzden konsolu çıkış yaptım ve okuyup konsol.log çıkacak, teşekkürler. Config nesnesinde yanlış bir şey yapsam fark edebilir misiniz? Sanırım sorun burası, ama yanlış olan bir şey görmüyorum. Teşekkürler! – nyhunter77

cevap

0

Read environment variables in Node.js

Sizin ikinci cevap doğru. Ortam değişkenleri görünmüyorsa, başlangıçta düğüm işleminde kullanılamayabilir.

+0

Evet, bu işe yaradı, yanlış bir şey yapıp yapılandırma değişkenine okumaya çalıştığımı merak ediyorum, process.env.AKAMAI_CLIENT_TOKEN'i alabilir ve config değişkeninin içine yerleştirebilirim, şimdi denerdim ama seyahat ediyorum Şu an. bilgi için teşekkürler! İlk önce bunu denedim ama muhtemelen yanlış sözdizimi kullanıyordum. – nyhunter77

+0

Tabii ki işe yaradı! Kesinlikle process.env.AKAMAI_CLIENT_TOKEN'i alabilir ve doğrudan config nesnesine koyabilirsiniz. – jpopesculian

+0

Aslında, şimdi tekrar kod ile oturdum, sanırım Akamai için API'nın kendisi ile ilgili bir şey olabilir. Bilgiyi değişken bilgilerle değiştirmeye izin vermeyen bazı güvenlik özellikleri var mı? – nyhunter77

İlgili konular