Node js PostgreSql,express, server connection

bappasahabapi

bappasaha

Posted on January 22, 2023

Node js PostgreSql,express, server connection

USING POSTMAN TO TEST THE APIS

Run the server type
npm init
node api.js
nodemon api

1. Install packages:

npm install pg --save
npm install express --save
npm install body-parser --save
npm install nodemon --save
Enter fullscreen mode Exit fullscreen mode

2. Create Database Connection:

Create a file called connection.js

This file would hold the connection data as shown below:

const { Client } = require("pg");

const client = new Client({
  host: "localhost",
  user: "postgres",
  port: 5432,
  password: "postgres",
  //password: "sa",
  database: "postgres",
});

module.exports = client;
Enter fullscreen mode Exit fullscreen mode

3. Create the Server and Client

Node.js allows us to create a server. Now we need to create a second file.

Here I call it api.js

Write the following code inside. This code creates a server listening at port 3300. Then a client is create as well that connects to the server.

const client = require("./connection.js");
const express = require("express");
const app = express();

app.listen(3300, () => {
  console.log("Sever is now listening at port 3300");
});

client.connect();
Enter fullscreen mode Exit fullscreen mode

Add the BodyParser: This is used to handle conversion to and from json.

const bodyParser = require("body-parser");
app.use(bodyParser.json());
Enter fullscreen mode Exit fullscreen mode

4. Get All Users

for GET requests, we use app.get() function. This function takes two parameters: the route /users and a callback. The callback is an arrow function that executes when a request is received. The callback take two parameter: request and response. Inside the callback, we use the client to query the database and then send the result back.

app.get("/users", (req, res) => {
  client.query(`Select * from users`, (err, result) => {
    if (!err) {
      res.send(result.rows);
    }
  });
  client.end;
});
Enter fullscreen mode Exit fullscreen mode

5. Get User By Id

// TODO: Get user by id

app.get("/users/:id", (req, res) => {
  client.query(
    `Select * from users where id=${req.params.id}`,
    (err, result) => {
      if (!err) {
        res.send(result.rows);
      }
    }
  );
  client.end;
});
Enter fullscreen mode Exit fullscreen mode

6. Add New User

// TODO: Add new user:

app.post('/users', (req, res)=> {
    const user = req.body;
    let insertQuery = `insert into users(id, firstname, lastname, location) 
                       values(${user.id}, '${user.firstname}','${user.lastname}', '${user.location}')`

    client.query(insertQuery, (err, result)=>{
        if(!err){
            res.send('Insertion was successful')
        }
        else{ console.log(err.message) }
    })
    client.end;
})
Enter fullscreen mode Exit fullscreen mode

7. Update User Details:

//TODO: update all user data

app.put('/users/:id', (req, res)=> {
    let user = req.body;
    let updateQuery = `update users
                       set firstname = '${user.firstname}',
                       lastname = '${user.lastname}',
                       location = '${user.location}'
                       where id = ${user.id}`

    client.query(updateQuery, (err, result)=>{
        if(!err){
            res.send('Update was successful')
        }
        else{ console.log(err.message) }
    })
    client.end;
})
Enter fullscreen mode Exit fullscreen mode

8. Delete Data:

// TODO: Delete the data 
app.delete('/users/:id', (req, res)=> {
    let insertQuery = `delete from users where id=${req.params.id}`

    client.query(insertQuery, (err, result)=>{
        if(!err){
            res.send('Deletion was successful')
        }
        else{ console.log(err.message) }
    })
    client.end;
})
Enter fullscreen mode Exit fullscreen mode
💖 💪 🙅 🚩
bappasahabapi
bappasaha

Posted on January 22, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related