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. Para almacenar la información de manera NoSQL, debemos agregar una identificación única a cada registro para que cada registro pueda identificarse de forma independiente.
Hay algunos pasos involucrados en la creación de la base de datos local y agregarle registros con una identificación única. Estos pasos son los siguientes:
- Cree el archivo package.json en la raíz del directorio del proyecto.
Comando para crear el archivo package.jsonnpm init -y
- Instale el paquete express y body-parser.
Comando para instalar paquetesnpm 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 local.
- Cree un método en el archivo del repositorio para agregar una identificación alfanumérica única a cada registro.
- Cree un método en el archivo del repositorio para agregar cada registro único a la base de datos en formato json.
Este ejemplo ilustra cómo crear una base de datos local y agregarle registros con una identificación única.
Nombre de archivo: index.js
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
// Importing node.js file system, crypto module const fs = require('fs') const crypto = require('crypto') 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 or record async createNewRecord(attributes) { // Assign unique Id to each record attributes.id = this.generateUniqueID() // 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; } // Method to generate unique ID generateUniqueID() { return crypto.randomBytes(8).toString('hex') } } // 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 paquete.json:
Paso para ejecutar este 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:
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 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