2017-07-16 69 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'方法。所以,是的,你应该在那里解析它。