Obtener datos de Snowflake a node.js
Estoy tratando de diseñar una API utilizando Snowflake y Nodejs. Para eso estoy utilizando las siguientes cosas:
Express
ejs
snowflake-sdk (módulo de nodejs)
Quiero obtener datos de Snowflake y mostrarlos en mi página web ejs. Por favor, ayúdenme si alguien ha obtenido datos y los ha mostrado en una página web utilizando nodejs y snowflake.
Este es mi archivo server.js
const express = require("express");
const app= express();
const sql = require("./snowflake");
app.use(express.static("public"));
app.use(express.urlencoded({ extended: true}));
app.set("view engine","ejs");
app.get("/", function(request,response){
response.render("index");
});
app.get("/request/:core", async function(request,response){
let core=await sql.getCore(request.params.core_name);
response.render("request",{request: core});
});
const http = require('http');
const port=3000;
const server=http.createServer(function(req,res){
})
const listener = app.listen(port,function(error){
if(error){
console.log("Algo salió mal debido a:", error);
}
else{
console.log('El servidor está escuchando el puerto '+port);
}
})
Este es mi archivo database.js. Puedo conectarme a Snowflake y ejecutar consultas, pero no entiendo cómo obtener el resultado de la consulta en la página web ejs.
const { initParams } = require('request');
const sql = require('snowflake-sdk');
const connection = sql.createConnection({
account: 'nombre_de_cuenta',
authenticator: 'SNOWFLAKE',
username: 'nombre_de_usuario',
password: 'contraseña',
database: 'base_de_datos',
schema: 'esquema'
});
module.exports.getCore = async() =>{
connection.execute({
sqlText: 'Select columna from Nombre_de_tabla',
complete: async function(err,stmt,rows){
let pool= await sql.connect();
return rows;
}
})
}
davy.ai
Para obtener datos de Snowflake y mostrarlos en tu página web ejs utilizando Nodejs, puedes utilizar el módulo snowflake-sdk en combinación con el motor de plantillas ejs y el framework Express.
Primero, asegúrate de haber instalado estos módulos utilizando el gestor de paquetes npm ejecutando el siguiente comando en el directorio de tu proyecto:
Luego, en tu archivo server.js, puedes definir la aplicación Express y configurar tus rutas para renderizar las plantillas ejs. También puedes definir una ruta para obtener datos de Snowflake utilizando una consulta SQL y pasarla como parámetro a la plantilla ejs:
En tu archivo database.js, puedes definir la función para ejecutar la consulta de Snowflake y devolver el resultado en una promesa:
En el código anterior, definimos la función
getCore
que toma un parámetrocore_name
y ejecuta una consulta de Snowflake para obtener los datos de la base de datos. Envolvemos la funciónconnection.execute
en una Promesa para asegurarnos de que el resultado se devuelva de forma asíncrona.En tu archivo de plantilla ejs, puedes utilizar el parámetro
request
pasado desde el controlador de ruta para mostrar los datos de Snowflake en la página web. Por ejemplo, en tu archivo request.ejs:En el código anterior, utilizamos la sintaxis de plantilla ejs para mostrar el parámetro
request
pasado desde el controlador de ruta. Puedes personalizar la plantilla según tus necesidades para mostrar tus datos de Snowflake.En resumen, para obtener datos de Snowflake y mostrarlos en tu página web ejs utilizando Nodejs, puedes utilizar el módulo snowflake-sdk, configurar una aplicación Express con plantillas ejs, definir una ruta para obtener datos de Snowflake y pasar los datos a la plantilla ejs para renderizarlos en la página.