2014-01-22 10 views
8

In Produktion Ich habe AWS-Anmeldeinformationen als Heroku-Konfigurationsvariablen gespeichert.Sails.js - Zugreifen auf local.js Umgebungseinstellungen in Controllern

In Entwicklung Ich möchte die Konfigurationsdetails in Config/local.js, aber wie kann ich auf die Konfigurationsdetails in einem Controller zugreifen?

local.js enthält:

module.exports = { aws_key: "...", aws_secret: "..." }

In meinem Controller ich aws_key versucht haben, config.aws_key und andere - aber kein Glück. Gibt es einen Haupt-App-Namespace, den ich verwenden kann, um in die von local.js exportierten Eigenschaften zu passen?

Ich bin neu in Segeln und ich fühle mich wie dies sollte einfach sein - jede Hilfe wäre willkommen.

Antwort

30

Lösung gefunden. Schritt 3 war, wo ich Probleme hatte.

tl; dr

Was ich nicht wusste war, dass die module.exports.thing die thing Objekt durch sails.config.thing zur Verfügung stellt. Gut zu wissen.


1) ich eine neue Datei an Config erstellt/aws.js mit dem Inhalt

// Get heroku config values  
module.exports.aws = { 
    key: process.env.AWS_KEY, 
    secret: process.env.AWS_SECRET 
} 

2) In local.js die tatsächlichen AWS creds setzen (dies wird nicht landen im Repository, da sails local.js automatisch mit gitignore ignoriert).

aws: { 
    key: actual-key, 
    secret: actual-secret 
} 

Diese für die lokale Prüfung ermöglicht, wo wir, keinen Zugriff auf die Einstellungen Heroku Config haben, während diese Werte von Schutz in einem Github Repo ausgesetzt.

3) Nun, um den Zugriff auf den Controller:

var aws_config = sails.config.aws; 

AWS.config.update({ 
    accessKeyId: aws_config.key, 
    secretAccessKey: aws_config.secret 
}); 

+0

danken Ihnen genau das, was ich für –

+0

Great work Drew suchen. Danke für das Posten. – pimbrouwers

+0

Hier können wir verschiedene Konfigurationen für verschiedene Umgebungen wie Entwicklung/Produktion verwenden. –

Verwandte Themen