¿Cómo eliminar un registro de su base de datos local/personalizada en Node.js?

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

archivo paquete.json

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

Base de datos:

Base de datos antes de eliminar

Base de datos después de eliminar

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *