DEV Community

sman40901
sman40901

Posted on

1

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

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more