DEV Community

sman40901
sman40901

Posted on

Node.JS rest api Tutorials

Install appropriate node version from here :
https://nodejs.org/en/download/

All these commands must be run on command prompt after npm package installation.
generate an empty npm project without going through an interactive process.
npm init -y

install required (driver) packages
npm i express mysql body-parser cors

install nodemon, it is a tool that helps by automatically restarting the node
application when file changes in the directory are detected
npm i -g nodemon

//First create a folder (lers say "nodejs-rest-api")
// and then create a file in that folder called "app.js"
//and you should add this code :

var express = require("express");
var app = express();
// mysql driver
var mysql = require("mysql");
// parser to parse POST body content
var bodyParser = require("body-parser");
// this is the port where your application will run (eg: localhost:9800)
var port = 9800;

// create connection object for database
let connection = mysql.createConnection({
host: "localhost",
user: "user",
password: "password",
database: "somedatabase",
});

app.use(bodyParser.json()); // so it can support JSON-encoded bodies
app.use(
bodyParser.urlencoded({
// so it can support URL-encoded bodies
extended: true,
})
);

// this will connect MySQL
connection.connect();

// this will create a get request with route "localhost:9800/"
// req -> request
// res -> response
app.get("/", (req, res) => {
res.send("Application started");
});

// this will create a get request with route "localhost:9800/coaches"
app.get("/coaches", (req, res) => {
connection.query("SELECT * FROM coachmain;", (err, result) => {
if (err) {
console.log(err);
res.json({ error: true });
} else {
console.log(result);
res.json(result);
}
});
});

// this will create a delete request with route "localhost:9800/deleteCoach"
/*
delete body should be something like this :
{
"coachId": 1
}
*/
app.delete("/deleteCoach", function (req, res) {
// get data from forms and add to the table called coachmain
var coachId = parseInt(req.body.coachId);
var queryString =
DELETE FROM coachmain
where coachId =
'
+
coachId +
';
connection.query(queryString, function (err, result) {
if (err) {
// handle error and notify user
res.status(400).send(err);
} else {
// success message here. if you forget this,
// the request will wait till timeout
res.status(201).send(req.body);
}
});
});

// this will create a post request with route "localhost:9800/deleteCoach"
/*
post body should be something like this :
{
"name": "full name",
"coachId": 1,
"season": 2
}
*/
app.post("/newCoach", function (req, res) {
// get data from forms and add to the table called user..
var name = req.body.name;
var coachId = parseInt(req.body.coachId);
var season = parseInt(req.body.season);
var queryString =
INSERT INTO coachmain
(
name, coachId, season
)
VALUES
(
'
+
name +
',' +
coachId +
',' +
season +
'
)
;
connection.query(queryString, function (err, result) {
if (err) {
// handle error and notify user
res.status(400).send(err);
} else {
// success message here. if you forget this,
// the request will wait till timeout
res.status(201).send(req.body);
}
});
});

// application will listen to this port
app.listen(port, (err) => {
console.log("running on :" + port);
});

Top comments (2)

Collapse
 
hamzaanis profile image
Hamza Anis

You could have formatted the code while posting.


Install appropriate node version from here : 
https://nodejs.org/en/download/

All these commands must be run on command prompt after npm package 

installation.
generate an empty npm project without going through an interactive 

process.
npm init -y

install required (driver) packages
npm i express mysql body-parser cors 

install nodemon, it is a tool that helps by automatically restarting 

the node 
application when file changes in the directory are detected
npm i -g nodemon




//First create a folder (lers say "nodejs-rest-api")
// and then create a file in that folder called "app.js" 
//and you should add this code :

var express = require("express");
var app = express();
// mysql driver
var mysql = require("mysql");
// parser to parse POST body content
var bodyParser = require("body-parser");
// this is the port where your application will run (eg: localhost:9800)
var port = 9800;

// create connection object for database
let connection = mysql.createConnection({
    host: "localhost",
    user: "user",
    password: "password",
    database: "somedatabase",
});

app.use(bodyParser.json()); // so it can support JSON-encoded bodies
app.use(
    bodyParser.urlencoded({
        // so it can support URL-encoded bodies
        extended: true,
    })
);

// this will connect MySQL
connection.connect();

// this will create a get request with route "localhost:9800/"
// req -> request
// res -> response
app.get("/", (req, res) => {
    res.send("Application started");
});

// this will create a get request with route "localhost:9800/coaches"
app.get("/coaches", (req, res) => {
    connection.query("SELECT * FROM coachmain;", (err, result) => {
        if (err) {
            console.log(err);
            res.json({ error: true });
        } else {
            console.log(result);
            res.json(result);
        }
    });
});

// this will create a delete request with route "localhost:9800/deleteCoach"
/*
delete body should be something like this :
    {
        "coachId": 1
    }
*/
app.delete("/deleteCoach", function (req, res) {
    // get data from forms and add to the table called coachmain
    var coachId = parseInt(req.body.coachId);
    var queryString =
        `DELETE FROM  coachmain 
           where coachId =
                '` +
        coachId +
        `'`;
    connection.query(queryString, function (err, result) {
        if (err) {
            // handle error and notify user
            res.status(400).send(err);
        } else {
            // success message here. if you forget this, 
            // the request will wait till timeout
            res.status(201).send(req.body);
        }
    });
});

// this will create a post request with route "localhost:9800/deleteCoach"
/*
post body should be something like this :
    {
        "name": "full name",
        "coachId": 1,
        "season": 2
    }
*/
app.post("/newCoach", function (req, res) {
    // get data from forms and add to the table called user..
    var name = req.body.name;
    var coachId = parseInt(req.body.coachId);
    var season = parseInt(req.body.season);
    var queryString =
        `INSERT INTO coachmain 
            (
                name, coachId, season
            )
            VALUES
            (
                '` +
        name +
        `','` +
        coachId +
        `','` +
        season +
        `'
            )`;
    connection.query(queryString, function (err, result) {
        if (err) {
            // handle error and notify user
            res.status(400).send(err);
        } else {
            // success message here. if you forget this, 
            // the request will wait till timeout
            res.status(201).send(req.body);
        }
    });
});

// application will listen to this port
app.listen(port, (err) => {
    console.log("running on :" + port);
});

Enter fullscreen mode Exit fullscreen mode
Collapse
 
sman40901 profile image
sman40901

visit my blog site for more tutorials : mycsharpcorner.blogspot.com/2020/0...