Да, вы можете напрямую писать в Cosmosdb, используя пакет @azure/cosmos
npm.
вы можете использовать его внутри службы 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;
}
}
Вот пример приложения с Ionic , конечно, вы можете использовать его и с угловым. Но я бы порекомендовал вам использовать веб-API в середине