2017-07-16 31 views
0

我正嘗試使用NodeJS從Vault讀取值。我在這裏張貼,以確保我的方法是正確的。使用nodejs讀取值

使用https://github.com/kr1sp1n/node-vault庫,我有下面的代碼片段:

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)); 

這將返回JSON以下塊對我說:

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

具體來說,我需要獲取的價值data.value(即我需要獲取'MY_PASSWORD'

我會在'then'塊內執行JSON解析,而不是將JSON打印到控制檯l og像我目前?

回答

0

是的,因爲vault.read()是異步的,你需要訪問和分析在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)); 

顯然返回值,你可能會想要做一些錯誤檢查,以確保你有良好的JSON數據,等等。

0

vault.read()調用返回一個promise,並且在承諾解決後將執行'then'方法。所以,是的,你應該在那裏解析它。