API REST con express
npm install express cors mysql2 pg dotenv
Para efectos del ejemplo se encuentran datos de prueba para la conexion de la base de datos. Se debe tener en cuenta que en un ambiente de desarrollo se pueden mantener los datos visibles. Sin embargo, como buena practica de desarrollo, es mejor: crear dos archivos .env (uno para MySQL y otro para PostgreSQL) y decide cuál vas a activar renombrándolo a .env (o modificando las variables directamente antes de iniciar el servidor).
.env para MySQL:
DB_TYPE=mysql MYSQL_HOST=localhost MYSQL_USER=root MYSQL_PASSWORD=your_mysql_password MYSQL_DATABASE=my_products_db MYSQL_PORT=3306
.env para PostgreSQL:
DB_TYPE=postgresql PG_HOST=localhost PG_USER=postgres PG_PASSWORD=your_postgres_password PG_DATABASE=my_products_db PG_PORT=5432
MYSQL
CREATE DATABASE IF NOT EXISTS my_products_db; USE my_products_db; CREATE TABLE IF NOT EXISTS products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, price DECIMAL(10, 2) NOT NULL, category VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO products (name, price, category) VALUES ('Laptop Dell (MySQL)', 1200.00, 'Electronics'), ('Teclado Mecánico (MySQL)', 85.50, 'Electronics');
PostgreSQL
CREATE DATABASE my_products_db; \c my_products_db; CREATE TABLE IF NOT EXISTS products ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, price DECIMAL(10, 2) NOT NULL, category VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO products (name, price, category) VALUES ('Monitor Curvo (PostgreSQL)', 350.00, 'Electronics'), ('Auriculares Gaming (PostgreSQL)', 99.99, 'Electronics');