Esta serie de blogs es solo una demostración simple de cómo crear cualquier aplicación Nodejs y ejecutarla tanto en la plataforma local como en la plataforma SAP BTP.
Crear aplicación local de NodeJs
crear carpeta basicnodejs.
Luego, dentro, cree otra carpeta srv, que será para los proveedores de servicios.
Ahora, desde la terminal, cambie el directorio y vaya dentro de la carpeta srv. Necesitaremos el archivo package.json dentro del archivo srv.
Ejecutar comando:
npm init --y
Ahora agregue/modifique debajo de los scripts.
"start": "node server.js"
Siempre que ejecutemos npm run start, ejecutará el archivo server.js
Tenemos que instalar el paquete express- npm install express
Cree un archivo server.js dentro de la carpeta srv y agregue el siguiente código
Ejecute el comando: npm run start
npm run start
Nuestra aplicación node js está ejecutando el puerto estático 5000 que hemos mencionado.
Ahora, creemos un archivo mta.yaml simple en el directorio raíz y proporcionemos los detalles a mta para obtener detalles de implementación para el Servicio:
ID: basicnodejs
_schema-version: '3.1'
version: 0.0.1
parameters:
enable-parallel-deployments: true
modules:
- name: basicnodejs-service
type: nodejs
path: srv
build-parameters:
ignore:
- 'default-*.json'
- .env
- '*node_modules*'
- package-lock.json
Ahora compila e implementa mta.yaml en BTP. Creará una aplicación de servicio basicnodejs en el espacio de desarrollo.
Haga clic en la URL de la aplicación.
Podemos acceder sin ninguna restricción desde cualquier lugar sin necesidad de tener una cuenta BTP.
Entonces, para restringirlo, usaremos el servicio de aprobación y autenticación en BTP.
Creación de enrutador de aplicaciones:
Para approuter, o para manejar el enrutamiento, cree la carpeta de la aplicación y el paquete.json dentro de ella
Instale @sap/approuter dentro de la carpeta de la aplicación como un paquete npm.
npm install @sap/approuter
Ahora agregue el script al archivo package.json –
"start": "node node_modules/@sap/approuter/approuter.js"
Ahora tenemos que crear el archivo xs-app.json, que es requerido por approuter. Eso manejará las rutas.
«srv-api» es un nombre que contiene información de una URL de destino.
Vamos a crear el módulo aprobador.
- name: basicnodejs-approuter
type: approuter.nodejs
path: app
build-parameters:
ignore:
- 'default-*.json'
- .env
- '*node_modules*'
- package-lock.json
parameters:
memory: 256M
disk-quota: 512M
keep-existing-routes: true
Ahora, si desplegamos el mta solo con estos detalles. Se estrellará.
Approuter requerirá algunos parámetros que serán proporcionados por el módulo basicnodejs-service.
ID: basicnodejs
_schema-version: '3.1'
version: 0.0.1
parameters:
enable-parallel-deployments: true
modules:
- name: basicnodejs-service
type: nodejs
path: srv
build-parameters:
ignore:
- 'default-*.json'
- .env
- '*node_modules*'
- package-lock.json
provides:
- name: srv-api
properties:
srv-url: ${default-url}
- name: basicnodejs-approuter
type: approuter.nodejs
path: app
build-parameters:
ignore:
- 'default-*.json'
- .env
- '*node_modules*'
- package-lock.json
parameters:
memory: 256M
disk-quota: 512M
keep-existing-routes: true
requires:
- name: srv-api
group: destinations
properties:
name: srv-api # must be used in xs-app.json as well
url: ~{srv-url}
basicnodejs-service proporciona variables de configuración que serán necesarias en basicnodejs-approuter
Ahora vuelva a compilar e implementar mta.yaml
Podemos comprobar las variables proporcionadas por el usuario. y encuentre las variables que hemos establecido en la sección requiere del aprobador.
Ahora abra la URL del aprobador. Podemos acceder a él sin ninguna credencial.
En esta serie, creó dos módulos. que puede ser accedido por cualquier persona en Internet.
Crearemos autenticación para restringir el módulo de servicio. Solo a través de approuter se podrá acceder al módulo de servicio.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073