La base de datos personalizada significa la base de datos local en su sistema de archivos. Hay dos tipos de base de datos ‘SQL’ y ‘NoSQL’. En la base de datos SQL, los datos se almacenan en forma de tabla y en la base de datos Nosql, los datos se almacenan de forma independiente con alguna forma particular de identificar cada registro de forma independiente. También podemos crear nuestra propia base de datos o almacén de datos localmente en forma de Nosql.
Hay algunos pasos involucrados en la creación de la base de datos local y la creación y eliminación de información de la misma. Estos pasos son los siguientes:
- Cree el archivo package.json en la raíz del directorio del proyecto usando el siguiente comando:
npm init -y
- Instale el paquete express y body-parser usando el siguiente comando:
npm install body-parser npm install express
- Cree una ruta POST para eliminar un registro de usuario en particular usando id.
- Configure el servidor para que se ejecute en un puerto específico (Puerto del desarrollador: 3000).
- Cree un archivo de repositorio y agregue toda la lógica relacionada con la creación de una base de datos local.
- Cree un método en el archivo del repositorio para eliminar un registro de la base de datos usando id.
Ejemplo: Este ejemplo ilustra cómo eliminar un registro de una base de datos personalizada local.
Nombre de archivo: archivo index.js
const express = require('express') const repo = require('./repository') const showRecordTemplet = require('./showRecord') const app = express() const port = process.env.PORT || 3000 // Home page app.get('/', async (req, res) => { const records = await repo.getAllRecords() res.send(showRecordTemplet(records)) }) // Post route to delete record app.post('/delete/:id', async (req, res) => { const id = req.params.id const temp = await repo.delete(id) res.redirect('/') }) // Server setup app.listen(port, () => { console.log(`Server start on port ${port}`) })
Nombre de archivo: archivo repository.js Este archivo contiene toda la lógica para eliminar un registro de una base de datos personalizada.
// Importing node.js file system, crypto module const fs = require('fs') class Repository { constructor(filename) { // The filename where datas are // going to store if (!filename) { throw new Error( 'Filename is required to create a datastore!') } this.filename = filename try { fs.accessSync(this.filename) } catch (err) { // If file not exist it is created // with empty array fs.writeFileSync(this.filename, '[]') } } // Method to fetch all records async getAllRecords() { return JSON.parse( await fs.promises.readFile(this.filename, { encoding: 'utf8' }) ) } // Delete Method async delete(id) { // Read all file contents of // the datastore const jsonRecords = await fs.promises.readFile(this.filename, { encoding: 'utf8' }) // Parsing json records in javascript // object type records const records = JSON.parse(jsonRecords) // Filter Records const filteredRecords = records.filter( record => record.id !== id) // Write all records back to the // custom database await fs.promises.writeFile( this.filename, JSON.stringify(filteredRecords, null, 2) ) } } // The 'datastore.json' file created at runtime // if it not exist, here we try to delete // information from database that means // database(datastore.json) already exist // and there are also records in it. module.exports = new Repository('datastore.json')
Nombre de archivo: showRecord.js
module.exports = records => { const displayRecordId = records.map(record => { return ` <p> Record ID - <strong>${record.id}</strong> <form action='delete/${record.id}' method='POST'> <button>Delete Record</button> </form> </p> ` }).join('') return ` <div> ${displayRecordId} </div> ` }
Nombre de archivo: archivo paquete.json
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Base de datos:
Nota: Por primera vez, el archivo de la base de datos del programa (datastore.json) no existe en el directorio del proyecto, se creó dinámicamente después de ejecutar el programa. Pero aquí tratamos de eliminar un registro de la base de datos, lo que significa que el programa se supone que ya se ejecutó una vez y algunos registros se agregan a la base de datos que intentamos eliminar.
Publicación traducida automáticamente
Artículo escrito por hunter__js y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA