Skip to main content

Connect Node Express and Mongodb

 In the root directory:


mkdir backend
cd backend

then type: npm init -y

npm install express cors mongodb dotenv

npm install -g nodemon

write the following line in package.json after "main":"index.js" :
"type":"module",

Now, create server.js file inside backend folder.

Write the following code in server.js file:

// starts here
import express from "express";
import cors from "cors"
import restaurants from "./api/restaurants.route.js"

const app = express();

app.use(cors());
app.use(express.json());

app.use("/api/v1/restaurants", restaurants);
app.use("*",(req,res) => res.status(404).json({error: "Not found!"}) );

export default app;

// ends here

create .env file and write:

RESTREVIEWS_DB_URI=mongodb+srv://ipritpritam:ipritpritam@cluster0.twcdr.mongodb.net/sample_restaurants?retryWrites=true&w=majority
RESTREVIEWS_NS=sample_restaurants
PORT=5000

then, create index.js in the backend folder and write the following:

// starts here

import app from "./server.js"
import mongodb from "mongodb"
import dotenv from "dotenv"

dotenv.config()
const MongoClient = mongodb.MongoClient

const port = process.env.PORT ||  8000

MongoClient.connect(
    process.env.RESTREVIEWS_DB_URI,
    {
        // poolSize: 50,// 50 people can connect at a time
        // wtimeout: 2500,
        maxPoolSize:50,
        wtimeoutMS:2500,
        // useNewUrlParse: true
    }
)
.catch(err => {
    console.error(err.stack);
    process.exit(1);
})
.then(async client => {
    app.listen(port, () => {
        console.log(`listening on port ${port}`);
    });
});

// ends here

create a api folder inside backend folder then, create a file called 'restaurants.route.js'.

Inside restaurants.route.js write the following lines of code:

// starts here
import express from "express"

const router = express.Router();

router.route("/").get((req,res) => res.send("Hello World"));

export default router;
// ends here

Then run: nodemon server
and see the url: http://localhost:5000/api/v1/restaurants

Comments

Popular posts from this blog

SQL: sneak peek

show databases; use mysql; show tables; select * from component; describe component; create database sql_intro; show databases; use sql_intro; create table emp_details (Name varchar(25), Age int, gender char(1), doj date, city varchar(15), salary float); describe emp_details; insert into emp_details  values("Jimmy",35,"M","2005-05-30","Chicago",70000), ("Shane",30,"M","1999-06-25","Seattle",55000), ("Marry",28,"F","2009-03-10","Boston",62000), ("Dwayne",37,"M", "2011-07-12","Austin", 57000), ("Sara",32,"F","2017-10-27","New York",72000), ("Ammy",35,"F","2014-12-20","Seattle",80000); select * from emp_details; select distinct city from emp_details; select count(name) as count_name from emp_details; select avg(salary) from emp_details; select name, age...