Creación de una aplicación de Angular con la API de Azure Cosmos DB para MongoDB: Creación de una aplicación de Node.js Express
SE APLICA A: MongoDB
En este tutorial de varias partes se muestra cómo crear una nueva aplicación escrita en Node.js con Express y Angular y cómo conectarla a la cuenta de Azure Cosmos DB configurada con la API para MongoDB de Azure Cosmos DB.
La parte 2 del tutorial se basa en la introducción y aborda las tareas siguientes:
- Instalación de la CLI de Angular y TypeScript
- Creación de un nuevo proyecto mediante Angular
- Creación de la aplicación mediante la plataforma Express
- Prueba de la aplicación en una herramienta de prueba HTTP
Tutorial en vídeo
Requisitos previos
Antes de iniciar esta parte del tutorial, asegúrese de que ha visto el vídeo de introducción.
En este tutorial también se necesita:
- Node.js versión 8.4.0 o superior.
- Una herramienta de prueba HTTP
- Se recomienda insomnio,
curl
, Visual Studio oInvoke-RestMethod
- Se recomienda insomnio,
- Visual Studio Code o su editor favorito de código.
Sugerencia
Este tutorial le guía por los pasos necesarios para crear la aplicación paso a paso. Si desea descargar el proyecto finalizado, puede obtener la aplicación completa en el repositorio de angular-cosmosdb en GitHub.
Instalación de la CLI de Angular y TypeScript
Abra una ventana del símbolo del sistema de Windows o de Terminal de Mac e instale la CLI de Angular.
npm install -g @angular/cli
Instale TypeScript escribiendo el comando siguiente en el símbolo del sistema.
npm install -g typescript
Uso de la CLI de Angular para crear un nuevo proyecto
En el símbolo del sistema, cambie a la carpeta donde desea crear el proyecto nuevo, a continuación, ejecute el siguiente comando. Este comando crea una nueva carpeta y un proyecto llamado angular-cosmosdb e instala los componentes de Angular requeridos para una nueva aplicación. Utiliza la configuración mínima (--minimal) y especifica que el proyecto utiliza Sass (una sintaxis similar a CSS con la marca --style scss).
ng new angular-cosmosdb --minimal --style scss
Una vez finalizado el comando, cambie los directorios a la carpeta src/client.
cd angular-cosmosdb
A continuación, abra la carpeta en Visual Studio Code.
code .
Creación de aplicación mediante la plataforma Express
En Visual Studio Code, en el panel Explorer, haga clic con el botón derecho en la carpeta src, haga clic en Nueva carpeta y asigne el nombre server a la nueva carpeta.
En el panel Explorer, haga clic con el botón derecho en la carpeta server, haga clic en Nuevo archivo y asigne el nombre index.js al nuevo archivo.
En el símbolo del sistema, utilice el siguiente comando para instalar el analizador de cuerpo. Esto ayuda a la aplicación a analizar los datos JSON que se pasan a través de las API.
npm i express body-parser --save
En Visual Studio Code, copie el código siguiente en el archivo index.js. Este código:
- Hace referencia a Express
- Extrae el analizador de cuerpo para leer datos JSON en el cuerpo de las solicitudes
- Usa una característica integrada llamada path
- Establece variables raíz para facilitar la búsqueda de la ubicación del código
- Configura un puerto
- Inicia Express
- Indica a la aplicación cómo utilizar el middleware que se va a usar para atender el servidor
- Sirve todo lo que se encuentra en la carpeta dist, que será el contenido estático
- Sirve la aplicación y sirve index.html para cualquier solicitud GET que no se encuentre en el servidor (para vínculos profundos)
- Inicia el servidor con app.listen
- Utiliza una función de flecha para registrar que el puerto está activo
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}`));
En Visual Studio Code, en el panel Explorer, haga clic con el botón derecho en la carpeta server y, a continuación, haga clic en Nuevo archivo. Asigne el nombre routes.js al archivo nuevo.
Copie el código siguiente en routes.js. Este código:
- Hace referencia el enrutador de Express
- Obtiene los héroes
- Devuelve el contenido JSON para un hérore definido
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;
Guarde todos los archivos modificados.
En Visual Studio Code, haga clic en el botón Depurar
y haga clic en el botón de engranaje
. El nuevo archivo launch.json se abre en Visual Studio Code.
En la línea 11 del archivo launch.json, cambie
"${workspaceFolder}\\server"
por"program": "${workspaceRoot}/src/server/index.js"
y guarde el archivo.Haga clic en el botón Iniciar depuración
para ejecutar la aplicación.
La aplicación se debe ejecutar sin errores.
Pruebe los puntos finales HTTP de la aplicación
Ahora use una herramienta de prueba HTTP para emitir una
GET
solicitud ahttp://localhost:3000/api/heroes
.La respuesta muestra que la aplicación está activa y se está ejecutando localmente.
Pasos siguientes
En esta parte del tutorial, ha hecho lo siguiente:
- Ha creado un proyecto de Node.js mediante la CLI de Angular
- Prueba de la aplicación mediante una herramienta de prueba HTTP
Puede continuar con la siguiente parte del tutorial para crear la interfaz de usuario.
¿Intenta planear la capacidad para una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, lea sobre el cálculo de unidades de solicitud mediante núcleos o CPU virtuales.
- Si conoce las tasas de solicitudes típicas de la carga de trabajo de la base de datos actual, obtenga información sobre el cálculo de unidades de solicitud mediante la herramienta de planeamiento de capacidad de Azure Cosmos DB.