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...

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists

While migration to db you often face/might face this error which says the table name that you wrote is already exists in the database. so in that case one of the solutions that you can try is wrapping up your create schema with this: if(!Schema::hasTable('users')){ } Example: if (! Schema :: hasTable ( 'users' )){              Schema :: create ( 'users' ,  function  ( Blueprint   $table ) {                  $table -> bigIncrements ( 'id' );                  $table -> bigInteger ( 'role_id' )-> unsigned ()-> nullable ();                  $table -> foreign ( ' role_id ' )-> references ( 'id' )-> on ( 'roles' ) ...