Szybki start: biblioteka tabel usługi Azure Cosmos DB dla Node.js
DOTYCZY: Stół
W tym przewodniku Szybki start pokazano, jak rozpocząć pracę z usługą Azure Cosmos DB for Table z poziomu aplikacji Node.js. Usługa Azure Cosmos DB dla tabel to bez schematu magazyn danych, który umożliwia aplikacjom przechowywanie danych ze strukturą tabeli w chmurze. Dowiesz się, jak tworzyć tabele, wiersze i wykonywać podstawowe zadania w ramach zasobu usługi Azure Cosmos DB przy użyciu zestawu Azure SDK dla Node.js.
Dokumentacja interfejsu API — pakiet | kodu | źródłowego biblioteki (npm) | Interfejs wiersza polecenia dla deweloperów platformy Azure
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Interfejs wiersza polecenia dla deweloperów platformy Azure
- Docker Desktop
- Node.js 22 lub nowsze
Inicjowanie projektu
Użyj interfejsu wiersza polecenia dla deweloperów platformy Azure (azd
), aby utworzyć usługę Azure Cosmos DB dla konta tabeli i wdrożyć konteneryzowaną przykładową aplikację. Przykładowa aplikacja używa biblioteki klienta do zarządzania, tworzenia, odczytywania i wykonywania zapytań dotyczących przykładowych danych.
Otwórz terminal w pustym katalogu.
Jeśli jeszcze nie uwierzytelniono, uwierzytelnij się w interfejsie wiersza polecenia dewelopera platformy Azure przy użyciu polecenia
azd auth login
. Wykonaj kroki określone przez narzędzie, aby uwierzytelnić się w interfejsie wiersza polecenia przy użyciu preferowanych poświadczeń platformy Azure.azd auth login
Użyj
azd init
polecenia , aby zainicjować projekt.azd init --template cosmos-db-table-nodejs-quickstart
Podczas inicjowania skonfiguruj unikatową nazwę środowiska.
Wdróż konto usługi Azure Cosmos DB przy użyciu polecenia
azd up
. Szablony Bicep wdrażają również przykładową aplikację internetową.azd up
Podczas procesu aprowizacji wybierz subskrypcję, żądaną lokalizację i docelową grupę zasobów. Poczekaj na zakończenie procesu aprowizacji. Proces może potrwać około pięciu minut.
Po zakończeniu aprowizacji zasobów platformy Azure adres URL uruchomionej aplikacji internetowej zostanie uwzględniony w danych wyjściowych.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
Użyj adresu URL w konsoli, aby przejść do aplikacji internetowej w przeglądarce. Obserwuj dane wyjściowe uruchomionej aplikacji.
Instalowanie biblioteki klienta
Biblioteka klienta jest dostępna za pośrednictwem narzędzia npm jako @azure/data-tables
pakietu.
Otwórz terminal i przejdź do
/src/ts
folderu.cd ./src/ts
Jeśli pakiet nie został jeszcze zainstalowany, zainstaluj go
@azure/data-tables
przy użyciu polecenianpm install
.npm install --save @azure/data-tables
Otwórz i przejrzyj plik src/ts/package.json , aby sprawdzić, czy
@azure/data-tables
wpis istnieje.
Otwórz terminal i przejdź do
/src/js
folderu.cd ./src/js
Jeśli pakiet nie został jeszcze zainstalowany, zainstaluj go
@azure/data-tables
przy użyciu polecenianpm install
.npm install --save @azure/data-tables
Otwórz i przejrzyj plik src/js/package.json , aby sprawdzić, czy
@azure/data-tables
wpis istnieje.
Model obiektów
Nazwa/nazwisko | opis |
---|---|
TableServiceClient |
Ten typ jest podstawowym typem klienta i służy do zarządzania metadanymi lub bazami danych dla całego konta. |
TableClient |
Ten typ reprezentuje klienta dla tabeli w ramach konta. |
Przykłady kodu
- Uwierzytelnianie użytkownika
- Pobieranie tabeli
- Tworzenie elementu
- Pobieranie elementu
- Elementy kwerend
Przykładowy kod w szablonie używa tabeli o nazwie cosmicworks-products
. Tabela cosmicworks-products
zawiera szczegółowe informacje, takie jak nazwa, kategoria, ilość, cena, unikatowy identyfikator i flaga sprzedaży dla każdego produktu. Kontener używa unikatowego identyfikatora* jako klucza wiersza i kategorii jako klucza partycji.
Uwierzytelnianie użytkownika
Ten przykład tworzy nowe wystąpienie TableServiceClient
typu.
let client: TableServiceClient = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", credential);
let client = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", credential);
Pobieranie tabeli
Ten przykład tworzy wystąpienie TableClient
typu przy użyciu GetTableClient
funkcji TableServiceClient
typu.
let table: TableClient = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
let table = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
Tworzenie elementu
Najprostszym sposobem utworzenia nowego elementu w tabeli jest utworzenie nowego interfejsu, TableEntity
a następnie utworzenie nowego obiektu tego typu.
export interface Product extends TableEntity {
name: string;
quantity: number;
price: number;
clearance: boolean;
}
const entity: Product = {
rowKey: '70b63682-b93a-4c77-aad2-65501347265f',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Najprostszym sposobem utworzenia nowego elementu w tabeli jest utworzenie obiektu JSON.
const entity = {
rowKey: '70b63682-b93a-4c77-aad2-65501347265f',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Utwórz element w kolekcji przy użyciu upsertEntity
metody z TableService
wystąpienia.
await table.upsertEntity<Product>(entity, "Replace");
await table.upsertEntity(entity, "Replace");
Pobieranie elementu
Określony element można pobrać z tabeli przy użyciu getEntity
metody , klucza wiersza dla elementu i klucza partycji elementu.
const response: GetTableEntityResponse<TableEntityResult<Product>> = await table.getEntity<Product>(partitionKey, rowKey);
const entity: Product = response as Product;
const entity = await table.getEntity(partitionKey, rowKey);
Elementy kwerend
Po wstawieniu elementu można również uruchomić zapytanie, aby pobrać wszystkie elementy zgodne z określonym filtrem przy użyciu listEntities
filtru OData.
const partitionKey: string = 'gear-surf-surfboards';
const filter: string = `PartitionKey eq '${partitionKey}'`
const queryOptions: TableEntityQueryOptions = { filter: filter }
const entities: PagedAsyncIterableIterator<TableEntityResult<Product>, TableEntityResultPage<Product>> = table.listEntities<Product>({ queryOptions: queryOptions });
const partitionKey = 'gear-surf-surfboards';
const entities = table.listEntities({
queryOptions: {
filter: `PartitionKey eq '${partitionKey}'`
}
});
Przeanalizuj wyniki zapytania podzielone na strony przy użyciu pętli asynchronicznej for await
w zestawie podzielonym na strony elementu entities
.
for await(const entity of entities) {
// Do something
}
for await(const entity of entities) {
// Do something
}
Czyszczenie zasobów
Jeśli nie potrzebujesz już przykładowej aplikacji lub zasobów, usuń odpowiednie wdrożenie i wszystkie zasoby.
azd down