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.
- 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.
| 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. |
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. |
- 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 installCada operación se ejecuta de manera independiente desde la terminal.
node list-books.tsAntes 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.tsAntes 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.tsEl archivo insertará todos los libros del arreglo en la base de datos.
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.tsEn delete-book.ts, se debe cambiar bookId por el ID del libro que se desea eliminar. Después, se ejecuta:
node delete-book.tsnode clear-books.tsAdvertencia: este comando borra todos los registros de la tabla
booksy no solicita confirmación.
- Creación y apertura de una base de datos SQLite.
- Creación de tablas con
CREATE TABLE IF NOT EXISTS. - Consultas SQL
INSERT,SELECT,UPDATEyDELETE. - 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.
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.