使用Digital Ocean NPM

时间:2019-07-16 10:10:05

标签: node.js digital-ocean

我有一个快速的Web应用程序,其中所需的功能之一是向用户显示其所有Digital Ocean液滴。我正在使用Digital Ocean NPM模块-https://www.npmjs.com/package/digitalocean-因此我的应用程序可以从Digital Ocean创建,删除,列出等。为了仅向用户显示他们自己的液滴,当他们创建液滴时,会在标记中添加用户ID。我现在要做的是仅列出ID为标签的液滴。

通过查看Digital Ocean API文档-https://developers.digitalocean.com/documentation/v2/#listing-droplets-by-tag-我知道可以通过给定标签列出液滴。另外,NPM模块允许您在传递查询参数的同时列出小滴,例如:client.droplets.list([queryObject,] [callback])

但是,我不确定如何将CURL的语言从API转换为Node模块,因为我对CURL没用。

到目前为止,我已经尝试过:

client.droplets.list(["tags", req.user.id]).then((droplets) => {
     // Do something
});

and 

client.droplets.list(["tag_name", req.user.id]).then((droplets) => {
     // Do something
});

第一次尝试使用单词“ tags”,因为这是NPM模块使用的语言。第二次尝试使用“ tag_name”,因为这是API用于按标签列出的内容。

但是,这些都不起作用。它们不会失败并不会引发错误,但是它们只会继续列出我的Digital Ocean帐户上的所有可用液滴,而不是列出具有用户ID作为标记的液滴。

1 个答案:

答案 0 :(得分:1)

droplet.list()方法接受查询对象(docscode)作为第一个参数。因此,要仅列出具有特定标签的Droplet,可以使用:

client.droplets.list({'tag_name': 'mytag'}).then((droplets) => {
    droplets.forEach(function(d, i) {
      console.log(d.id, d.name);
    });
});