Azure cosmosdb 设置Azure DocumentDB Javascript SDK

Azure cosmosdb 设置Azure DocumentDB Javascript SDK,azure-cosmosdb,Azure Cosmosdb,我正在尝试使用Javascript SDK设置Azure DocumentDB。 到目前为止,我有一个主密钥、一个端点url、一个数据库设置和一个集合。我想不出的是如何用他们所需要的值替换我所拥有的,我在文档或其他方面找不到任何参考 下面是我试图为其填充值的代码。我的想法是 collectionurl=我的端点url,resourceToken=我的密钥,collectionId=集合名称。但是什么是hostedendpoint,我应该如何设置resourceToken?我知道这没什么好做的,但

我正在尝试使用Javascript SDK设置Azure DocumentDB。 到目前为止,我有一个主密钥、一个端点url、一个数据库设置和一个集合。我想不出的是如何用他们所需要的值替换我所拥有的,我在文档或其他方面找不到任何参考

下面是我试图为其填充值的代码。我的想法是 collectionurl=我的端点url,resourceToken=我的密钥,collectionId=集合名称。但是什么是hostedendpoint,我应该如何设置resourceToken?我知道这没什么好做的,但是如果有人使用过DocumentDB,我会非常感谢你的帮助

var host = (hostendpoint);                        // Add your host
var resourceToken = {};
resourceTokens[(collectionId)] = (resourceToken); // Add the collectionId and resourceToken for read/write on the collection
var collectionUrl = (collectionUrl);              // Add the collection self-link
var client = DocumentDB.createClient(host, {resourceTokens: resourceTokens});
var documentDefinition = {id: "Hello world document", content: "Hello World!"};
client.createDocument(collectionUrl, documentDefinition, function(err, createdDocument) {
    if (err) {
        throw err;
    }

    console.log('result', createdDocument.content);
})

让上述JS SDK代码示例正常工作的步骤如下:

  • 将DocumentDB端点放入到
    (hostendpoint)
  • 放置集合资源id(这是
    \u rid
    ,而不是
    id
    , 属性)作为的值
    (collectionId)
  • 放置权限令牌(您将需要创建用户和 集合的权限)作为
    (resourceToken)
    的值
  • (collectionUrl)
完成的代码示例应类似于以下内容:

var host = "https://bloopbloop.documents.azure.com:443"; // Add your host

var resourceTokens = {};
resourceTokens["Pa0wAKPRZQA="] = "type=resource&ver=1&sig=WaOXNCJaZ7Z7obf74i48Yg==;Dbb5bXDnm5ou0rpAUyifsFR5VNIsfSTeuad81P7zC7ytJtSwLCLnw9ne99vuIH8/giBsYIrqtXE5PYDs2idLfdJ4+K3bfT8BJgWqdgIuIEE/nvVpdEQ85y1azPXO7F+wXwBzK4eH2wQ0yMudy+petUdnN1GR3VJNsuNTZ1j+mnLLT/FLpFjWLVyI2dTLe7KHM0FvnczVZmT9wGJV8rUMjgjV9oG552DAev9exPGnj4E=;"; // Add the collectionId and resourceToken for read/write on the collection

var collectionUrl = "dbs/Pa0wAA==/colls/Pa0wAKPRZQA=/"; // Add the collection self-link

var client = DocumentDB.createClient(host, {
  resourceTokens: resourceTokens
});

var documentDefinition = {
  id: "Hello world document",
  content: "Hello World!"
};

client.createDocument(collectionUrl, documentDefinition, function(err, createdDocument) {
  if (err) {
    throw err;
  }

  console.log('result', createdDocument);
});
如果您正在构建Node.js应用程序,我强烈建议您签出Node.js客户端:

DocumentDB JS客户端不是最直观的SDK。围绕这个SDK的开发体验是我们正在努力改进的。如果您愿意讨论您的用例/场景(甚至希望得到一些一般性的帮助),请访问
andrl{at}microsoft.com
与我联系

您应该看看模块。
它是
DocumentDB
之上的一个包装器,但更直观(mongodb风格/流),支持挂钩、模式、原子事务和查询/操作

示例:

//传递连接和数据库名称,如果'test'不存在,它将创建一个。
var db=新的DoQmentDB(连接,“测试”);
//创建CollectionManager,如果“用户”不存在,它将创建一个。
var users=db.use('users');
//每个http函数返回一个带有两个特定方法的“Promise”:success和error。
create({name:'arielm.})
.然后(console.log);
update({name:'Ariel',admin:true},{admin:false})
.然后(console.log);
users.findAndRemove({isAdmin:false})

.然后(console.log)不确定您是否仍然需要帮助,但由于aliuy没有太多涉及如何获取资源令牌,因此我想补充他的答案

简单地说,如果您使用Javascript SDK进行“客户端”开发,您将无法使用SDK生成资源令牌,因为您需要使用主密钥来获取资源令牌,但客户端Javascript SDK不支持通过主密钥进行身份验证

因此,您需要使用另一个SDK(ex、Node.js、.NET等)创建一个用户,然后使用该用户创建特定资源的权限

不幸的是,使用这种方法,即使你的应用程序是严格的客户端(例如,Metro HTML5/JS应用程序),你也需要一个中间层来授权访问你的应用程序


但是,如果您的应用程序主要由您的主密钥信任的人使用,您可以轻松地将主密钥身份验证添加到客户端Javascript SDK。我不会鼓励人们这样做,所以除非你需要,否则我不会在这里发布工作代码。但这里有一个指针——您需要一个库来创建签名,例如Crypto.JS。

我找不到任何解释或给出示例的内容,非常感谢。这是一个难以置信的帮助!非常感谢。非常有帮助!这很有帮助,谢谢。我对你使用万能钥匙的方法很感兴趣,如果你能贴出来的话。