用nodejs读取值

时间:2017-07-16 16:30:12

标签: node.js

我正在尝试使用NodeJS从Vault读取值。我在这里发帖以确保我的方法是正确的。

使用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打印到控制台日志吗?

2 个答案:

答案 0 :(得分: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数据等。

答案 1 :(得分:0)

vault.read()调用返回promise,并且一旦promise解析,将执行'then'方法。所以,是的,你应该在那里解析它。