Creare un'app Angular con l'API di Azure Cosmos DB per MongoDB - Creare un'app Node.js Express
SI APPLICA A: MongoDB
Questa esercitazione in più parti illustra come creare una nuova app scritta in Node.js con Express e Angular e quindi connetterla all'account Azure Cosmos DB configurato con l'API Azure Cosmos DB for MongoDB.
La Parte 2 dell'esercitazione è basata sull'introduzione e illustra le attività seguenti:
- Installare l'interfaccia della riga di comando di Angular e TypeScript
- Creare un nuovo progetto usando Angular
- Compilare l'app usando il framework Express
- Testare l'app in uno strumento di test HTTP
Procedura dettagliata video
Prerequisiti
Prima di iniziare questa parte dell'esercitazione, guardare il video introduttivo.
Per completare questa esercitazione, sono necessari anche:
- Node.js versione 8.4.0 o successiva.
- Uno strumento di test HTTP
- È consigliabile insonnia,
curl
, Visual Studio oInvoke-RestMethod
- È consigliabile insonnia,
- Visual Studio Code o un altro editor di codice.
Suggerimento
Questa esercitazione illustra in modo dettagliato la procedura per la creazione dell'applicazione. Se si vuole scaricare il progetto finito, è possibile ottenere l'applicazione completa dal repository angular-cosmosdb in GitHub.
Installare l'interfaccia della riga di comando di Angular e TypeScript
Aprire un prompt dei comandi di Windows o una finestra del terminale di Mac e installare l'interfaccia della riga di comando di Angular.
npm install -g @angular/cli
Installare TypeScript immettendo il comando seguente nel prompt.
npm install -g typescript
Usare l'interfaccia della riga di comando di Angular per creare un nuovo progetto
Al prompt dei comandi, passare alla cartella in cui si vuole creare il nuovo progetto, quindi usare il comando seguente. Questo comando crea una nuova cartella e un nuovo progetto denominato angular-cosmosdb e installa i componenti di Angular necessari per una nuova app. Usa la configurazione minima (--minimal) e specifica che il progetto usa Sass (una sintassi simile a CSS con il flag --style scss).
ng new angular-cosmosdb --minimal --style scss
Dopo che il comando è stato completato, modificare le directory nella cartella src/client.
cd angular-cosmosdb
Aprire quindi la cartella in Visual Studio Code.
code .
Compilare l'app usando il framework Express
Nel riquadro Esplora di Visual Studio Code fare clic con il pulsante destro del mouse sulla cartella src, scegliere Nuova cartella e assegnare alla nuova cartella il nome server.
Nel riquadro Esplora fare clic con il pulsante destro del mouse sulla cartella server, scegliere Nuovo file e specificare index.js come nome per il nuovo file.
Al prompt dei comandi, usare il comando seguente per installare il parser del corpo, che consente all'app di analizzare i dati JSON passati tramite le API.
npm i express body-parser --save
In Visual Studio Code copiare il codice seguente nel file index.js. Questo codice:
- Fa riferimento a Express
- Esegue il pull del parser del corpo per leggere i dati JSON nel corpo delle richieste
- Usa una funzionalità predefinita denominata path
- Imposta le variabili radice per trovare più facilmente dove si trova il codice
- Configura una porta
- Avvia Express
- Comunica all'app come usare il middleware per gestire il server
- Gestisce tutto il contenuto della cartella dist, che costituirà il contenuto statico
- Gestisce l'applicazione e index.html per le richieste GET non trovate sul server (per i collegamenti diretti)
- Avvia il server con app.listen
- Usa una funzione arrow per registrare che la porta è attiva
const express = require('express'); const bodyParser = require('body-parser'); const path = require('path'); const routes = require('./routes'); const root = './'; const port = process.env.PORT || '3000'; const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(express.static(path.join(root, 'dist/angular-cosmosdb'))); app.use('/api', routes); app.get('*', (req, res) => { res.sendFile('dist/angular-cosmosdb/index.html', {root}); }); app.listen(port, () => console.log(`API running on localhost:${port}`));
Nel riquadro Esplora di Visual Studio Code fare clic con il pulsante destro del mouse sulla cartella server e quindi scegliere Nuovo file. Assegnare al nuovo file il nome routes.js.
Copiare il codice seguente in routes.js. Questo codice:
- Fa riferimento al router Express
- Ottiene l'elemento heroes
- Rimanda il codice JSON per un elemento hero definito
const express = require('express'); const router = express.Router(); router.get('/heroes', (req, res) => { res.send(200, [ {"id": 10, "name": "Starlord", "saying": "oh yeah"} ]) }); module.exports=router;
Salvare tutti i file modificati.
In Visual Studio Code fare clic sul pulsante Debug, quindi sul pulsante dell'ingranaggio . Il nuovo file launch.json viene aperto in Visual Studio Code.
Alla riga 11 del file launch.json sostituire
"${workspaceFolder}\\server"
con"program": "${workspaceRoot}/src/server/index.js"
e salvare il file.Fare clic sul pulsante Avvia debug per eseguire l'app.
L'app verrà eseguita senza errori.
Testare gli endpoint HTTP dell'app
Usare ora uno strumento di test HTTP per inviare una
GET
richiesta ahttp://localhost:3000/api/heroes
.La risposta mostra che l'app è in esecuzione in locale.
Passaggi successivi
In questa parte dell'esercitazione sono state eseguite le operazioni seguenti:
- È stato creato un progetto Node.js usando l'interfaccia della riga di comando di Angular
- Test dell'app con uno strumento di test HTTP
È possibile passare alla parte successiva dell'esercitazione per compilare l'interfaccia utente.
Si sta tentando di pianificare la capacità per una migrazione ad Azure Cosmos DB? È possibile usare le informazioni del cluster di database esistente per la pianificazione della capacità.
- Se si conosce solo il numero di vcore e server nel cluster di database esistente, leggere le informazioni sulla stima delle unità richieste usando vCore o vCPU
- Se si conosce la frequenza delle richieste tipiche per il carico di lavoro corrente del database, leggere le informazioni sulla stima delle unità richieste con lo strumento di pianificazione della capacità di Azure Cosmos DB