FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index mod_harbour HIX -> Consumiendo API Node.js
Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
HIX -> Consumiendo API Node.js
Posted: Wed Oct 29, 2025 01:00 PM
Realizando prueba con HIX para consumir una API de Node.js para acceder a un servidor MaridaDB / MySQL:
#xcommand TRY  => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS

function main()

  local cHtml := '', oHttp, cUrl, cJson, hParams, cResponse
  
  hParams := {=>}
  hParams["action"] := "ping"
  cJson := hb_jsonEncode( hParams )

  cUrl := "http://192.168.0.50:3002/api/ping"
  oHttp := TApiConnNodeJs()
  oHttp:Open( "GET", cUrl, .F. )
  
  oHttp:SetRequestHeader( "Content-Type", "application/json" )
  oHttp:SetRequestHeader( "Accept", "application/json" )
  oHttp:SetRequestHeader( "Cache-Control", "no-cache" )

  oHttp:SetRequestHeader( "Connection", "Keep-Alive" )
  oHttp:Send( cJson )  
  cResponse := oHttp:responseText

  cHtml += '<h2>Information test ApiNodeJs</h2><hr>'
  cHtml += '<small>Processed at ' + dtoc(date()) + ' ' + time() + '</small>'
  cHtml += '<hr>'
  cHtml += 'responseText: ' +cResponse
 
return cHtml 

//-------------------------------------------------------------------------------------------------------------------
function TApiConnNodeJs()
LOCAL lHttp, oHttp

lHttp := .f.

TRY
  oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" )
  lHttp := .t.
CATCH
  lHttp := .f.
END

IF !lHttp
	TRY
	  oHttp := CreateObject( "MSXML2.ServerXMLHTTP" )
	  lHttp := .t.
	CATCH
	  oHttp := CreateObject( "MSXML2.XMLHTTP" )
	  lHttp := .t.
	END
END

RETURN oHttp
Y este es el resultado:


El api de Node.js esta instalado en un servidor local con Linux Ubuntu 24.04.

Gran trabajo Carles con HIX.

Saludos cordiales.

Carlos.
Posts: 141
Joined: Fri Feb 15, 2019 01:37 PM
Re: HIX -&gt; Consumiendo API Node.js
Posted: Thu Nov 20, 2025 01:50 PM

Hola Csincuir.

Porque nos hace el favor y nos muestra la configuaracion de Routes, la configuracion del server

Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
Re: HIX -&gt; Consumiendo API Node.js
Posted: Fri Nov 21, 2025 07:27 PM

Hola Adolfredo.

Claro, aqu铆 est谩 la configuraci贸n de mi API en Node.js:
Configuraci贸n del servidor (server.js):

const express = require('express');
const mysql = require('mysql2/promise');
const cors = require('cors');
const compression = require('compression');

const app = express();
const PORT = 3002;

// Middleware
app.use(cors());
app.use(compression());
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ extended: true, limit: '50mb' }));

// Pool de conexiones MySQL (reutilizable)
let connectionPools = new Map();

// Logging
app.use((req, res, next) => {
    console.log(`[${new Date().toISOString()}] ${req.method} ${req.path}`);
    next();
});

// Endpoint de ping (GET)
app.get('/api/ping', (req, res) => {
    res.json({ 
        success: true, 
        message: 'API MySQL Node.js funcionando correctamente',
        timestamp: new Date().toISOString(),
        version: '1.1.0'
    });
});

// Endpoint para ejecutar queries (POST)
app.post('/api/query', async (req, res) => {
    // Recibe: host, user, password, database, query, params
    // Ejecuta el query y devuelve resultados
});

// Otros endpoints: /api/transaction, /api/table/structure, /api/test-connection

// Iniciar servidor
app.listen(PORT, '0.0.0.0', () => {
    console.log(`Servidor escuchando en http://0.0.0.0:${PORT}`);
});

Endpoints disponibles:

GET /api/ping - Verificar estado del servidor
POST /api/query - Ejecutar consultas SQL
POST /api/transaction - Transacciones m煤ltiples
POST /api/test-connection - Probar conexi贸n
POST /api/table/structure - Obtener estructura de tabla

La API usa pool de conexiones MySQL para mejor rendimiento y acepta par谩metros de conexi贸n din谩micos en cada request.

Es una adaptacion que estoy haciendo de Eagle1 de Manu Exposito, pero con Node.js (Como una prueba m铆a, para comparar velocidades de respuesta, pero, Eagle1 es bastante rapida, tanto como Node.js)

Espero te sirva.

Saludos cordiales.

Carlos Sincuir

Posts: 141
Joined: Fri Feb 15, 2019 01:37 PM
Re: HIX -&gt; Consumiendo API Node.js
Posted: Tue Nov 25, 2025 01:54 PM

Hola Csincuir

Gracias, cualquier inquietud te estar茅 molestando.

Continue the discussion