Configurar la función Advanced I/O
El directorio de la función Advanced I/O (functions/news_app_function) contiene los siguientes archivos:
- El archivo principal de la función index.js
- El archivo de configuración catalyst-config.json
- Módulos de Node
- Archivos de dependencias package.json y package-lock.json.
Agregará código en el archivo index.js.
La función Advanced I/O obtiene el elemento de noticias de su tabla de origen en el Data Store y lo envía al componente client como una respuesta JSON.
Instalar el framework Express Node.js
Dado que está codificando en la plataforma Node.js, utilizará el framework Express Node.js. Para importar el paquete Express en el código, debe instalar las dependencias de Express en su sistema.
Esto instalará el módulo Express y guardará las dependencias.
Copie el código de Node.js y péguelo en index.js en el directorio functions/news_app_function de su proyecto, y guarde el archivo. Puede usar cualquier IDE para trabajar con los archivos de la aplicación.
'use strict';
var express = require('express');
var app = express();
var catalyst = require('zcatalyst-sdk-node');
app.use(express.json());
//API GET que obtiene las noticias de la tabla requerida
app.get('/fetchData', (req, res) => {
var tablename = req.query.tablename;
console.log("Table Name "+tablename);
//Inicializando el SDK de Catalyst
var catalystApp = catalyst.initialize(req);
//Consulta la tabla del Catalyst Data Store y obtiene las noticias requeridas
getDataFromCatalystDataStore(catalystApp, tablename).then(newsDetails => {
res.send({
"content": newsDetails
})
}).catch(err => {
console.log(err);
sendErrorResponse(res);
})
});
/**
* Ejecuta la consulta y obtiene las noticias de la tabla
* @param {*} catalystApp
* @param {*} tablename
*/
function getDataFromCatalystDataStore(catalystApp, tablename) {
return new Promise((resolve, reject) => {
//Consulta la tabla del Catalyst Data Store
catalystApp.zcql().executeZCQLQuery("Select title,url from " + tablename).then(queryResponse => {
resolve(queryResponse);
}).catch(err => {
reject(err);
})
});
}
/**
* Envía una respuesta de error
* @param {*} res
*/
function sendErrorResponse(res) {
res.status(500);
res.send({
"error": "Internal server error occurred. Please try again in some time."
});
}
module.exports = app;
La función Advanced I/O está ahora configurada. Discutiremos la arquitectura de la aplicación después de configurar el client.
Última actualización 2026-03-20 21:51:56 +0530 IST
