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