2017-07-16 3 views
0

Ich versuche, einen Wert aus Vault mit dem NodeJS zu lesen. Ich poste hier, um sicherzustellen, dass meine Vorgehensweise korrekt ist.Lesen Wert mit Nodejs

die https://github.com/kr1sp1n/node-vault Bibliothek verwenden, ich habe den folgenden Code-Snippet:

var params = { 
    apiVersion: 'v1', 
    endpoint: "https://localhost:8200", 
    token: "MY_TOKEN" 
}; 

    var vault = require("node-vault")(params); 
    vault.read('secret/mysecret/foo').then(v => { 
    console.log(v); 
    }).catch(e => console.error(e)); 

Dies gibt den folgenden Block von JSON zu mir:

{ request_id: 'MY_ID', 
    lease_id: '', 
    renewable: false, 
    lease_duration: 100, 
    data: { value: 'MY_PASSWORD' }, 
    wrap_info: null, 
    warnings: null, 
    auth: null } 

Insbesondere, ich brauche den Wert zu holen data.value (dh ich muss 'MY_PASSWORD' abholen.

Würde ich JSON-Parsing innerhalb des 'then' Blocks durchführen, anstatt den JSON auf die Konsole zu drucken l og wie ich gerade bin?

Antwort

0

Ja, weil vault.read() asynchron ist, müssen Sie den Rückgabewert in der then()

vault.read('secret/mysecret/foo').then(v => { 
    let parsed = JSON.parse(v); 
    let pw = parsed.data.value //=> 'MY_PASSWORD' 
}).catch(e => console.error(e)); 

Offensichtlich zuzugreifen und diese zu analysieren, werden Sie wahrscheinlich einige Fehlerprüfungen machen wollen sicherstellen, dass Sie gute json Daten haben, usw.

0

Der Aufruf vault.read() gibt eine promise zurück und die 'then' Methode wird ausgeführt, sobald die Versprechen verrechnet wird. Also, ja, du solltest es dort analysieren.