https://expressjs.com/
Express JS
Fast, unopinionated, minimalist web framework for Node.js
Install
$ npm install express --savev PS C:\nodeproject> npm install express --save
https://expressjs.com/en/starter/hello-world.html
mysql
https://github.com/mysqljs/mysql
$ npm i mysql2
PS C:\nodeproject>npm i mysql2
run PS C:\nodeproject> node index.js
//index.js
const express = require("express");
const { executeQuery } = require("./db");
const port = 9000;
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.get("/api/employee", async (req, res) => {
try {
let employeeData = await executeQuery("select * from employee");
res.status(200).json(employeeData);
} catch (err) {
res.status(500).json(err);
console.log("eror query");
}
});
app.get("/api/employee/:id", async (req, res) => {
let id = req.params.id;
try {
let employeeData = await executeQuery(
"select * from employee where emp_id=?",
[id]
);
res.status(200).json(employeeData);
} catch (err) {
res.status(500).json(err);
}
});
app.post("/api/saveEmployee", async (req, res) => {
try {
const { emp_name, emp_email, emp_address, emp_phone } = req.body;
let employeeData = await executeQuery(
"insert into employee(emp_name,emp_email,emp_address,emp_phone) values(?,?,?,?)",
[emp_name, emp_email, emp_address, emp_phone]
);
res.status(201).json(employeeData);
} catch (err) {
res.status(400).json(err);
}
});
app.put("/api/update/:id", async (req, res) => {
try {
const userId = req.params.id;
const q = "UPDATE employee SET `emp_name`= ?, `emp_email`= ?, `emp_address`= ?, `emp_phone`= ? WHERE emp_id = ?";
const values = [
req.body.emp_name,
req.body.emp_email,
req.body.emp_address,
req.body.emp_phone,
];
executeQuery(q, [...values, userId], () => {
res.status(201).json(values);
});
} catch (err) {
res.status(400).json(err);
}
});
app.delete("/api/delete/:id", async (req, res) => {
let id = req.params.id;
try {
const sql = "Delete FROM employee WHERE emp_id = ?";
executeQuery(sql, [id], (err, result) => {
if (err) return res.json({ Error: "delete employee error in sql" });
return res.json({ Status: "Success" })
})
} catch (err) {
res.status(500).json(err);
}
});
app.listen(port, () => console.log(`server is running on port ${port}`));
db.js
//db.js
const util = require('util');
const mysql = require('mysql2'); //npm i mysql2 https://www.npmjs.com/package/mysql2
const pool = mysql.createPool({
socketPath: '/Applications/MAMP/tmp/mysql/mysql.sock',
connectionLimit: 10,
host: 'localhost',
user: 'root',
password: 'root',
database: 'nextjsdb'
});
// Ping database to check for common exception errors.
pool.getConnection((err, connection) => {
if (err) {
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
console.error('Database connection was closed.');
}
if (err.code === 'ER_CON_COUNT_ERROR') {
console.error('Database has too many connections.');
}
if (err.code === 'ECONNREFUSED') {
console.error('Database connection was refused.');
}
}
if (connection) connection.release();
return;
});
// Promisify for Node.js async/await.
pool.query = util.promisify(pool.query);
const executeQuery = (query, arraParms) => {
return new Promise((resolve, reject) => {
try {
pool.query(query, arraParms, (err, data) => {
if (err) {
console.log("error in executing the query");
reject(err);
}
resolve(data);
});
} catch (err) {
reject(err);
}
});
};
module.exports = { executeQuery };
