Páginas

viernes, 29 de julio de 2022

JavaScript: Que es Node con un ejemplo.

JavaScript es un lenguaje de programación que inicialmente se diseñó para ser ejecutado en el buscador. Es decir, se construían páginas html que para poder contener código ejecutable se cargaban con scripts que no eran otra cosa que módulos con sentencias JavaScript que dotaban y dotan a las páginas html de interactividad con el usuario. Por ejemplo, si se clica un botón se abre una nueva ventana.

JavaScript es un lenguaje de programación que inicialmente se diseñó para ser ejecutado en el buscador. Es decir, se construían páginas html que para poder contener código ejecutable se cargaban con scripts que no eran otra cosa que módulos con sentencias JavaScript que dotaban y dotan a las páginas html de interactividad con el usuario. Por ejemplo, si se clica un botón se abre una nueva ventana.

Para ello lo primero es instalar Node que se puede hacer desde https://nodejs.org/en/download/

Después de la instalación podemos escribir en la consola del sistema el comando node y se recibe información de la versión que se ha instalado:

Welcome to Node.js v14.16.0.

Un ejemplo de uso de Node es el siguiente. Escribimos un módulo en lenguaje JavaScript con el siguiente contenido:

const http = require('http');
const hostname = '127.0.0.1';
const port = 1234;
http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('<h1>Hola a todos\n</h1>');
}).listen(port, hostname, () => {
console.log(`Servidor corriendo en http://${hostname}:${port}/`);
});
view raw holamundo.js hosted with ❤ by GitHub

Se guarda este módulo con el nombre holamundo.js. Si se ejecuta en la consola del sistema el comando node holamundo, se arranca un servicio en 127.0.0.1:1234 y por ello en la consola del sistema se verá:

Servidor corriendo en http://127.0.0.1:1234

A continuación abriendo un buscador y escribiendo http://127.0.0.1:1234 veremos

Para terminar

Node permite que la programación de servidor se escriba en javascript al igual que la del cliente. Node ha tenido bastante éxito y actualmente muchos sistemas tiene su frontend e incluso su backend escritos con JavaScript haciendo uso de este software. Node permite escribir código asíncrono para mejorar la interacción con el usuario y no hacerle esperar cuando no es necesario, además esta orientado a eventos y basado en el motor V8 de Google. Pero eso es otra historia…

viernes, 15 de julio de 2022

Javascript: Ejemplo de CRUD con MariaDB y Node Express

Con carácter general para establecer la conexión


var express = require('express');
var router = express.Router();
const mariadb = require('mariadb');
const pool = mariadb.createPool({
host: '127.0.0.1',
user:'root',
password: 'root',
database: "MiDB",
connectionLimit: 5
});
let conn;
async function getConnection () {
conn = await pool.getConnection();
}
view raw gistfile1.txt hosted with ❤ by GitHub

Leer todas las filas


router.get('/', async function(req, res, next) {
await getConnection();
conn
.query("SELECT * FROM school")
.then((resQuery) => res.send(resQuery))
.catch(err => res.send ({errorCode:'sqlState'+ err.sqlState, errorMessage:err.text}))
.finally(conn.end())
})
view raw gistfile1.txt hosted with ❤ by GitHub

Leer una fila por identificador


router.get('/:id', async function(req, res, next) {
await getConnection();
conn
.query("SELECT * FROM school WHERE id=?",[req.params.id])
.then((resQuery) => res.send(resQuery[0]))
.catch(err => {res.send ({errorCode:'sqlState'+ err.sqlState, errorMessage:err.text})
.finally(conn.end())
})
})
view raw gistfile1.txt hosted with ❤ by GitHub

Crear una fila


router.post('/', async function (req, res) {
var params = req.body;
await getConnection();
conn
.query(`INSERT INTO school (name, contact_person, contact_telephone, contact_email)
VALUES ("${params.name}", "${params.contact_person}",
"${params.contact_telephone}", "${params.contact_email}")`)
.then((resQuery) => res.send({'inserted rows': resQuery.affectedRows, 'inserted id': resQuery.insertId.toString()}))
.catch(err => res.send ({errorCode:'sqlState'+ err.sqlState, errorMessage:err.text, errorDesc:err}))
.finally(conn.end())
})
view raw gistfile1.txt hosted with ❤ by GitHub

Modificar una fila


router.put('/:id', async function (req, res) {
var params = req.body;
await getConnection();
let updateColumns = '';
if (params.name !== undefined)
updateColumns = updateColumns + 'name = ' + "'" + params.name + "'";
if (params.contact_person !== undefined)
updateColumns = updateColumns + ', contact_person = ' + "'" + params.contact_person + "'";
if (params.contact_telephone !== undefined)
updateColumns = updateColumns + ', contact_telephone = ' + "'" + params.contact_telephone + "'";
if (params.contact_email !== undefined)
updateColumns = updateColumns + ', contact_email = ' + "'" + params.contact_email + "'";
// Erase comma when is first character
let updateColumnsok;
if(updateColumns.substring(0,1) == ',')
{updateColumnsok = updateColumns.substring(2, updateColumns.length+1);
updateColumns = updateColumnsok;}
conn
.query(`UPDATE school SET ${updateColumns} where id = ${req.params.id}`)
.then((resQuery) =>
{console.log ('resQuery ',resQuery);
res.send({'updated rows': resQuery.affectedRows})})
.catch(err => res.send ({errorCode:'sqlState'+ err.sqlState, errorMessage:err.text, errorDesc:err}))
.finally(conn.end())
})
view raw gistfile1.txt hosted with ❤ by GitHub

Borrar una fila


router.delete('/:id', async function (req, res) {
var params = req.body;
await getConnection();
conn
.query(`DELETE FROM school WHERE id = ${req.params.id}`)
.then((resQuery) => res.send({'deleted rows': resQuery.affectedRows}))
.catch(err => res.send ({errorCode:'sqlState'+ err.sqlState, errorMessage:err.text}))
.finally(conn.end())
})
view raw gistfile1.txt hosted with ❤ by GitHub

Espero que sea de ayuda para algun abnegado programador