Create REST API using NodeJS, Express and MySQL
Middleware Installation and Project Setup
npm init npm install express --save npm install cors --save npm install nodemone --save npm install body-parser --save npm install mysql --save
Mysql Database table structure
Here id is int and auto increment type and name and fname are varchar.
Index.js
var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var cors = require('cors'); var mysql = require('mysql'); app.use(bodyParser.json()); app.use(cors()); app.use(bodyParser.urlencoded({ extended: true })); // connection configurations var dbConn = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'test' }); // connect to database dbConn.connect(); // default route //www.domain.com app.get('/', function (req, res) { return res.send({ error: true, message: 'hello' }) }); // Retrieve all users app.get('/information', function (req, res) { dbConn.query('SELECT * FROM info', function (error, results, fields) { if (error) throw error; return res.send({ error: false, data: results, message: 'Complete Data.' }); }); }); // Retrieve user with id app.get('/mydata/:id', function (req, res) { let id = req.params.id; if (!id) { return res.status(400).send({ error: true, message: 'Please provide id' }); } dbConn.query('SELECT * FROM info where id=?', id, function (error, results, fields) { if (error) throw error; return res.send({ error: false, data: results[0], message: 'Information by ID.' }); }); }); // Add a new Record app.post('/adduser', function (req, res) { let name = req.body.name; let fname = req.body.fname; console.log(name+" "+fname); if (!name && !fname) { return res.status(400).send({ error:true, message: 'Please provide Information to be add' }); } dbConn.query("INSERT INTO info(name, fname) value(?,?) ", [name,fname], function (error, results, fields) { if (error) throw error; return res.send({ error: false, data: results, message: 'Record has been added' }); }); }); // Update user with id app.put('/update', function (req, res) { let id = req.body.id; let name = req.body.name; let fname = req.body.fname; if (!id || !name || !fname) { return res.status(400).send({ error: user, message: 'Please provide full information with id' }); } dbConn.query("UPDATE info SET name = ?, fname= ? WHERE id = ?", [name, fname, id], function (error, results, fields) { if (error) throw error; return res.send({ error: false, data: results, message: 'data updated' }); }); }); // Delete user app.delete('/deleteuser', function (req, res) { let id = req.body.id; if (!id) { return res.status(400).send({ error: true, message: 'Please provide id' }); } dbConn.query('DELETE FROM info WHERE id = ?', [id], function (error, results, fields) { if (error) throw error; return res.send({ error: false, data: results, message: 'User Data has been deleted' }); }); }); // set port app.listen(3000, function () { console.log('Node app is running on port 3000'); }); module.exports = app;
Package.JSON
{ "name": "restapi-mysql", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "body-parser": "^1.19.0", "cors": "^2.8.5", "express": "^4.17.1", "mysql": "^2.17.1" } }
Please show us how to login jwt token. And send data from html form. Thanks.
maza aa gya
This was an excellent tutorial!!!