Skip to content

About

Este proyecto es una práctica básica para aprender a crear y manipular una base de datos SQLite con Node.js y TypeScript

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Práctica de SQLite con Node.js y Typescrpt

Este proyecto es una práctica básica para aprender a crear y manipular una base de datos SQLite con Node.js. Simula el funcionamiento de una pequeña biblioteca y permite realizar las operaciones principales de un CRUD: crear, consultar, actualizar y eliminar libros.

La conexión se realiza con el módulo nativo node:sqlite, por lo que el proyecto no necesita instalar una librería externa para trabajar con SQLite.

Funcionalidades

  • Crear automáticamente la base de datos y la tabla books.
  • Insertar un libro.
  • Listar todos los libros guardados.
  • Actualizar un libro por su ID.
  • Eliminar un libro por su ID.
  • Eliminar todos los libros de la tabla.

Estructura del proyecto

Archivo Descripción
db.ts Abre biblioteca.db y crea la tabla books si aún no existe.
insert-book.ts Inserta un nuevo libro en la base de datos.
insert-books.ts Inserta varios libros en la base de datos.
list-books.ts Consulta y muestra todos los libros ordenados por ID.
update-book.ts Actualiza los datos de un libro mediante su ID.
delete-book.ts Elimina un libro mediante su ID.
clear-books.ts Elimina todos los registros de la tabla.
biblioteca.db Archivo de la base de datos SQLite.

Modelo de datos

Los libros se almacenan en la tabla books con la siguiente estructura:

Campo Tipo Descripción
id INTEGER Identificador único autoincremental.
title TEXT Título del libro. Es obligatorio.
author TEXT Autor del libro. Es obligatorio.
year INTEGER Año de publicación.
read INTEGER Estado de lectura: 0 significa no leído y 1, leído.

Requisitos

  • Una versión moderna de Node.js, con soporte para ejecutar TypeScript y utilizar el módulo node:sqlite.
  • Se recomienda Node.js 24 o superior.

El proyecto no utiliza dependencias externas. Sin embargo, se puede ejecutar npm install para inicializarlo a partir de package-lock.json:

npm install

Uso

Cada operación se ejecuta de manera independiente desde la terminal.

Listar los libros

node list-books.ts

Insertar un libro

Antes de ejecutar el archivo, se deben modificar en insert-book.ts los valores enviados a insert.run(...):

const result = insert.run(
  "El principito",
  "Antoine de Saint-Exupéry",
  1943,
  0
)

Después, se ejecuta:

node insert-book.ts

Insertar varios libros

Antes de ejecutar el archivo, se debe modificar el arreglo books de insert-books.ts con los libros que se desean agregar:

const books = [
  {
    title: "1984",
    author: "George Orwell",
    year: 1949,
    read: 0,
  },
  {
    title: "Fahrenheit 451",
    author: "Ray Bradbury",
    year: 1953,
    read: 1,
  },
]

Cada objeto del arreglo representa un libro. El valor de read debe ser:

  • 0: libro no leído.
  • 1: libro leído.

Después, se ejecuta:

node insert-books.ts

El archivo insertará todos los libros del arreglo en la base de datos.

Actualizar un libro

En update-book.ts, se debe cambiar bookId por el ID correspondiente y editar los nuevos datos enviados a update.run(...). Después, se ejecuta:

node update-book.ts

Eliminar un libro

En delete-book.ts, se debe cambiar bookId por el ID del libro que se desea eliminar. Después, se ejecuta:

node delete-book.ts

Eliminar todos los libros

node clear-books.ts

Advertencia: este comando borra todos los registros de la tabla books y no solicita confirmación.

Conceptos practicados

  • Creación y apertura de una base de datos SQLite.
  • Creación de tablas con CREATE TABLE IF NOT EXISTS.
  • Consultas SQL INSERT, SELECT, UPDATE y DELETE.
  • Uso de consultas preparadas y parámetros para enviar datos de forma segura.
  • Uso de una clave primaria autoincremental.
  • Comprobación de filas afectadas con result.changes.
  • Apertura y cierre de la conexión desde Node.js.

Nota

Los datos que se insertan, actualizan o eliminan están definidos directamente en los archivos de ejemplo. El objetivo del proyecto es practicar el uso de SQLite con Node.js; por este motivo, no incluye una interfaz gráfica ni entrada interactiva mediante la consola.

About

Este proyecto es una práctica básica para aprender a crear y manipular una base de datos SQLite con Node.js y TypeScript

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages