Azure cosmosdb 手机上的Angular应用程序能否直接写入Cosmos DB?

Azure cosmosdb 手机上的Angular应用程序能否直接写入Cosmos DB?,azure-cosmosdb,Azure Cosmosdb,我看到Cosmos DB是可伸缩的。因此,这意味着我可以在全球范围内创建多个Cosmos DB副本,为用户提供更快的响应 然而,我想知道是否也需要一个Web API来写入Cosmos DB?如果是这样,我们还需要部署多个Web API副本 我的问题是,移动设备上的Angular应用程序能否直接写入Cosmos DB? (中间没有API层)是的,您可以使用npm包直接写入Cosmosdb 您可以在angualr服务中使用它 import * as Cosmos from "@azure/cosmo

我看到Cosmos DB是可伸缩的。因此,这意味着我可以在全球范围内创建多个Cosmos DB副本,为用户提供更快的响应

然而,我想知道是否也需要一个Web API来写入Cosmos DB?如果是这样,我们还需要部署多个Web API副本

我的问题是,移动设备上的Angular应用程序能否直接写入Cosmos DB?
(中间没有API层)

是的,您可以使用npm包直接写入Cosmosdb

您可以在angualr服务中使用它

import * as Cosmos from "@azure/cosmos";

export class CosmosService {

    private static instance: CosmosService;
    private readonly cosmosHost = "<your_db>.documents.azure.com:443/";
    private readonly primaryKey = "<primary_key>";
    private readonly database = "ToDoList";
    private readonly collection = "Items";

    private client: Cosmos.CosmosClient;
    db: Cosmos.Database;
    container: Cosmos.Container;

    public items: Model.Todo[];

    constructor() {
        this.client = new Cosmos.CosmosClient({
            endpoint: `https://${this.cosmosHost}`,
            auth: {
                masterKey: this.primaryKey
            },
            consistencyLevel: "Eventual",
            connectionPolicy: {
                enableEndpointDiscovery: false
            }
        });

        this.db = this.client.database(this.database);
        this.container = this.db.container(this.collection);
    }

    async addItem(todo: Model.Todo) {
        const item = await this.container.items.create(todo)
            .catch(err => console.error(err));
        console.log(item);
    }

    async listCollections(): Promise<Model.Todo[]> {

        const response = await this.container.items
            .readAll<Model.Todo>().fetchAll();
        console.warn(response);
        this.items = response.resources;
        console.log(`${this.items.length} items received`);
        return this.items;
    }

    public static getInstance(): CosmosService {
        if (!CosmosService.instance)
            CosmosService.instance = new CosmosService();
        return CosmosService.instance;
    }
}
import*作为宇宙从“@azure/Cosmos”导入;
导出类CosmosService{
私有静态实例:CosmosService;
私有只读cosmosHost=“.documents.azure.com:443/”;
私有只读primaryKey=“”;
私有只读数据库=“ToDoList”;
私有只读集合=“项”;
私人客户:Cosmos.CosmosClient;
db:Cosmos.数据库;
容器:宇宙容器;
公共项目:Model.Todo[];
构造函数(){
this.client=new Cosmos.CosmosClient({
端点:`https://${this.cosmosHost}`,
认证:{
万能钥匙:这是主钥匙
},
一致性级别:“最终”,
连接策略:{
enableEndpointDiscovery:false
}
});
this.db=this.client.database(this.database);
this.container=this.db.container(this.collection);
}
异步附加项(todo:Model.todo){
const item=wait this.container.items.create(todo)
.catch(err=>console.error(err));
控制台日志(项目);
}
异步listCollections():承诺{
const response=等待this.container.items
.readAll().fetchAll();
控制台。警告(响应);
this.items=response.resources;
log(`${this.items.length}接收到的items`);
归还此物品;
}
公共静态getInstance():CosmosService{
如果(!CosmosService.instance)
CosmosService.instance=新CosmosService();
返回CosmosService.instance;
}
}
这里是一个带有的示例应用程序,当然您也可以将其用于angular。但我建议您在中间使用web API