¿Cómo agregar registros en su propia 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 necesarios para crear la base de datos local y agregarle registros. Estos pasos son los siguientes:

  • Cree el archivo package.json en la raíz del directorio del proyecto. Comando para crear el archivo package.json
npm init -y
  • Instale el paquete express y body-parser. Comando para instalar paquetes
npm install express body-parser
  • Cree una ruta GET para mostrar el formulario (formulario HTML para enviar la información a la base de datos).
  • Cree la ruta de publicación posterior para manejar la solicitud de envío del formulario.
  • 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 y el almacenamiento de datos en él.

Este ejemplo crea una base de datos local llamada ‘datastore.json’ y almacena la información del usuario en ella. Nombre de archivo: index.js 

javascript

const express = require('express')
const bodyParser = require('body-parser')
const repo = require('./repository')
 
const app = express()
 
const port = process.env.PORT || 3000
 
// The body-parser middleware
// to parse form data
app.use(bodyParser.urlencoded({extended : true}))
 
// Get route to display HTML form
app.get('/signup', (req, res) => {
  res.send(`
    <div>
      <form method='POST'>
        <div>
          <div>
            <label id='email'>Username</label>
          </div>
          <input type='text' name='email'
                    placeholder='Email'
          for='email'>
        </div>
 
        <div>
          <div>
            <label id='password'>Password</label>
          </div>
          <input type='password' name='password'
                     placeholder='Password'
          for='password'>
        </div>
     
        <div>
          <button>Sign Up</button>
        </div>
      </form>
    </div>
  `);
})
 
// Post route to handle form submission
// logic and add data to the database
app.post('/signup', async (req, res) => {
  const {email, password} = req.body
 
  const addedRecord = await
    repo.createNewRecord({email, password})
 
  console.log(`Added Record :
    ${JSON.stringify(addedRecord, null, 4)}`)
 
  res.send("Information added to the"
         + " database successfully.")
})
 
// Server setup
app.listen(port, () => {
  console.log(`Server start on port ${port}`)
})

Nombre de archivo: repositorio.js 

javascript

// Importing node.js file system module
const fs = require('fs')
 
class Repository {
 
  constructor(filename) {
     
    // 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, '[]')
    }
  }
 
  // Logic to add data
  async createNewRecord(attributes) {
 
    // Read filecontents of the datastore
    const jsonRecords = await
      fs.promises.readFile(this.filename,{
      encoding : 'utf8'
    })
 
    // Parsing JSON records in JavaScript
    // object type records
    const objRecord = JSON.parse(jsonRecords)
 
    // Adding new record
    objRecord.push(attributes)
 
    // Writing all records back to the file
    await fs.promises.writeFile(
      this.filename,
      JSON.stringify(objRecord, null, 2)  
    )
 
    return attributes;
  }
 
}
 
// The 'datastore.json' file created at
// runtime and all the information
// provided via signup form store in
// this file in JSON format.
module.exports = new Repository('datastore.json')

Archivo Package.json: Pasos para ejecutar el programa: Ejecute el archivo index.js usando el siguiente comando:

node index.js

Formulario para enviar las respuestas: Nota: Aquí se envían tres respuestas una tras otra y todas las respuestas se almacenan en el archivo datastore.json. Página redirigida después de enviar la solicitud: Salida: Base de datos: Nota: Por primera vez, al ejecutar el archivo de la base de datos del programa (datastore.json) que no existe en el directorio del proyecto, se creó dinámicamente después de ejecutar el programa y almacenar la respuesta enviada. Después de eso, todas las respuestas enviadas se agregan a la base de datos una por una.

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 *