[The error i'm constantly getting! please help me out here. I have tried to re-install mysql several times and even tried mysql2 package instead of mysql.]
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express()
app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
// Default Route
app.get('/', (req, res) => {
res.send('Hello world !!!!!')
})
// connection configurations
const mysqlConnection = mysql.createConnection({
host: 'localhost',
people: 'root',
password: 'password',
database: 'sampledb',
multipleStatements: true
// HOST: 'localhost',
// USER: 'root',
// PASSWORD: 'password',
// DB: 'sampledb',
// PORT: 3306
});
// connect to database
mysqlConnection.connect((err) => {
if (!err)
console.log("The connection is established successfully");
else
throw (err);
});
// Retrieve all people from people
app.get('/people', function (req, res) {
mysqlConnection.query('SELECT * FROM people', function (error, results, fields) {
if (error) throw error;
return res.send({ error: false, data: results, message: 'people list.' });
});
});
// Retrieve people with id
app.get('/people/:id', function (req, res) {
let people_id = req.params.id;
if (!people_id) {
return res.status(400).send({ error: true, message: 'Please provide people_id' });
}
mysqlConnection.query('SELECT * FROM people where id=?', people_id, function (error, results, fields) {
if (error) throw error;
return res.send({ error: false, data: results[0], message: 'people list.' });
});
});
// Add a new people
app.post('/people', function (req, res) {
let people = req.body.people;
if (!people) {
return res.status(400).send({ error: true, message: 'Please provide people' });
}
mysqlConnection.query("INSERT INTO people SET ? ", { people: people }, function (error, results, fields) {
if (error) throw error;
return res.send({ error: false, data: results, message: 'New people has been created successfully.' });
});
});
// Update people with id
app.put('/people', function (req, res) {
let people_id = req.body.people_id;
let people = req.body.people;
if (!people_id || !people) {
return res.status(400).send({ error: people, message: 'Please provide people and people_id' });
}
mysqlConnection.query("UPDATE people SET people = ? WHERE id = ?", [people, people_id], function (error, results, fields) {
if (error) throw error;
return res.send({ error: false, data: results, message: 'people has been updated successfully.' });
});
});
// Delete people
app.delete('/people', function (req, res) {
let people_id = req.body.people_id;
if (!people_id) {
return res.status(400).send({ error: true, message: 'Please provide people_id' });
}
mysqlConnection.query('DELETE FROM people WHERE id = ?', [people_id], function (error, results, fields) {
if (error) throw error;
return res.send({ error: false, data: results, message: 'people has been updated successfully.' });
});
});
app.listen(3000, () => {
console.log('Server is started at port 3000');
});
]1
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket. (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\Connection.js:88:28)
at Socket. (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:315:12)
--------------------
at Protocol._enqueue (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (E:\Sample-Application\CRUD-App\node_modules\mysql\lib\Connection.js:116:18)
at Object. (E:\Sample-Application\CRUD-App\Server.js:30:17)
at Module._compile (node:internal/modules/cjs/loader:1126:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
at Module.load (node:internal/modules/cjs/loader:1004:32)
at Function.Module._load (node:internal/modules/cjs/loader:839:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
}
[nodemon] app crashed - waiting for file changes before starting...
Please Help me out here this is my first question on stack-overflow. I'm completely new to this world.