How to find record by Id from local/custom database in Node.js ?
The custom database signifies the local database in your file system. There are two types of database ‘SQL’ and ‘NoSQL’. In SQL database data are stored as table manner and in Nosql database data are stored independently with some particular way to identify each record independently. we can also create our own database or datastore locally in Nosql manner.
There are some steps involve in creating the local database and fetch records from it using id. These steps are as follows:
- Create package.json file in the root of the project directory.
Command to create package.json file
npm init -y
- Install express and body-parser package.
Command to install packages
npm install express
- Create a POST route to request for particular user database using id.
- Set the server to run on a specific port (Developer’s port – 3000).
- Create a repository file and add all the logic related to creating local database.
- Create a method in repository file to fetch a record from database using id.
Example 1: This example illustrates how to fetch a record from a local custom database using an id.
Filename: index.js
const express = require( 'express' )
const repo = require( './repository' )
const {userInfo} = require( './fetchUser' )
const app = express()
const port = process.env.PORT || 3000
app.get( '/' , (req, res) => {
res.send(`
<form method= 'POST' >
<button>Fetch User Information</button>
</form>
`)
})
app.post( '/' , async (req, res) => {
const user =
await repo.findById( '3f2006d22864b8af' )
res.send(userInfo(user))
})
app.listen(port, () => {
console.log(`Server start on port ${port}`)
})
|
Filename: fetchUser.js: This js file has a method to display fetched user information to webpage.
module.exports = {
userInfo(user) {
return `
<div>
<p><strong>ID : </strong>${user.id}<p>
</div>
<div>
<p><strong>Email : </strong>${user.email}<p>
</div>
<div>
<p><strong>Name : </strong>${user.name}<p>
</div>
<div>
<p><strong>Password : </strong>${user.password}<p>
</div>
`
}
}
|
Filename: repository.js This file contains all the logic to find a record using an id.
const fs = require( 'fs' )
class Repository {
constructor(filename) {
if (!filename) {
throw new Error(
'Filename is required to create a datastore!' )
}
this .filename = filename
try {
fs.accessSync( this .filename)
} catch (err) {
fs.writeFileSync( this .filename, '[]' )
}
}
async findById(id){
const jsonRecords = await
fs.promises.readFile( this .filename, {
encoding : 'utf8'
})
const objRecord = JSON.parse(jsonRecords)
const requiredRecord =
objRecord.find(record => record.id === id)
return requiredRecord
}
}
module.exports = new Repository( 'datastore.json' )
|
Package.json file:
Database:
Output:
After Clicking the button:
Note: For the first time, running the program database (datastore.json) file not exist in the project directory, it created dynamically after running the program. But here we try to fetch information from the database using an id that means program suppose to have already run once and some records are added into the database that we try to fetch.
Last Updated :
14 Jul, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...