How do you fetch data from mongodb in node js and display in ejs?
I'm having trouble figuring out how can I retrieve data in mongodb and fetch it in an html/ejs file. in html/ejs file there is one button where if the user click it, it will display all data in database collection mongodb.
I found some questions similar to my question but it doesn't answer my question. I am still new at node js and mongodb so I don't really have an Idea on how can I achieve my goal.
this is my index.js
var express = require["express"];
var app = express[];
app.set['view engine', 'ejs']
//var hostname = '127.0.0.1';
var port = 3000;
var mongoose = require["mongoose"];
app.set['view engine','jade'];
mongoose.Promise = global.Promise;
mongoose.connect["mongodb://localhost:27017/commuters", {useNewUrlParser: true}];
app.use['/gui', express.static['gui']];
//use to link static file in the folder named public
var nameSchema = new mongoose.Schema[{
route : String,
origin : String,
destination : String,
estimatedTimeOfArrival : String,
date : String,
time : String
},
{
collection : 'boardingAlight'
}];
//collection is the name of collection that you created in the same database name above
var User = mongoose.model["User", nameSchema];
var bodyParser = require['body-parser'];
app.use[bodyParser.json[]];
app.use[bodyParser.urlencoded[{ extended: true, useNewUrlParser : true }]];
app.use["/", [req, res] => {
res.sendFile[__dirname + "/gui/index.html"];
}];
//FOR PORT CONNECTION
//localhost:3000
app.listen[port, [] => {
console.log["Server listening on port " + port];
}];
once I created ejs file
with a button, I need to display the all the data in a table. Thank you!
Edit
Delete |
No Data Found |
6. Create a Route to fetch Data
Create a route to fetch data with the help of the following points –
- Include a controller file using
require['../controllers/fetch-controller']
- Create a route
/fetch-data
with GET
method to fetch data from the MongoDB database
File Name – fetch-route
var express = require['express'];
var router = express.Router[];
var fetchController= require['../controllers/fetch-controller'];
router.get['/fetch-data',fetchController.fetchData];
module.exports = router;
7. Include and Use the Router in app.js
Now, You have to include & use the fetched route in the main root file app.js
File Name – app.js
var fetchRouter = require['./routes/fetch-route'];
app.use['/', fetchRouter];
8. Run Node.js app to Fetch Data
First, start the Node.js server. after that, Enter the following URL in your browser to display data in the HTML table
//localhost:3000/fetch-data
My Suggestion
Dear developers, I hope you have understood the above script, Now you are able to Fetch data from MongoDB using Mongoose and Node.js express
I will share more tutorials on Node.js/Express asap. So, Continue to visit this website.
If you have any doubts or questions. You can
directly ask me through the below comment box.
How to Fetch & Display Data From MySQL Database in Node js Express.
Step 1 – Create Node Express js App..
Step 2 – Create Table in MySQL Database and Connect App to DB..
Step 3 – Install express flash ejs body-parser mysql Modules..
Step 4 – Create HTML Markup Form..
Step 5 – Import Modules in App.js and Create Routes..
“get data from mongodb in node js react” Code Answer's.
app. post['/stored', [req, res] => {.
console. log[req. body];.
db. collection['quotes']. insertOne[req. body, [err, data] => {.
if[err] return console. log[err];.
res. send[['saved to db: ' + data]];.
You have to follow the below steps to display MongoDB data on the HTML page:.
Create Node Express js App..
Install express flash ejs body-parser mongoose dependencies..
Connect App to MongoDB..
Create Model..
Create Routes..
Create HTML Table and Display List..
Import Modules in App. js..
Start App Server..