DEV Community

Cover image for Node js PostgreSql,express, server connection
bappasaha
bappasaha

Posted on • Edited on

1

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

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay