Backend MySQL
Wed May 03 2023 19:43:05 GMT+0000 (Coordinated Universal Time)
Saved by @luisjdominguezp #nodejs
const express = require("express");
const mysql = require("mysql2");
const cors = require("cors");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser");
const session = require("express-session");
const bcrypt = require('bcrypt');
const saltRound = 10;
const app = express();
app.use(express.json());
app.use(
cors({
origin: ["http://localhost:3000"],
methods: ["GET", "POST"],
credentials: true,
})
);
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));
app.use (
session ({
key: "userId",
secret: "subscribe",
resave: false,
saveUninitialized: false,
cookie: {
expires: 60 * 60 * 24,
},
})
);
const db = mysql.createConnection({
user: "username",
host: "localhost",
password: "PASSWORD-MYSQL",
database: "usuarios",
});
app.post('/register', (req, res)=> {
const username = req.body.username;
const password = req.body.password;
bcrypt.hash(password,saltRound, (err, hash) => {
if (err) {
console.log(err)
}
let insertQuery = 'INSERT INTO ?? (??,??) VALUES (?,?)';
let query = mysql.format(insertQuery, ["usuarios", "username", "password", username, hash]);
db.query(query, function(err, response,fields) {
if (err) {
console.log("Error: ");
console.error(err);
}
// rows added
console.log("Response: ");
console.log(response);
if (response.affectedRows==1){
res.send("OK");
} else {
res.send("NO");
}
});
})
});
app.get("/login", (req, res) => {
if (req.session.user) {
res.send({ loggedIn: true, user: req.session.user });
} else {
res.send({ loggedIn: false });
}
});
app.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
db.execute(
"SELECT * FROM usuarios WHERE username = ?;",
[username],
(err, result)=> {
if (err) {
res.send({err: err});
}
if (result.length > 0) {
bcrypt.compare(password, result[0].password, (error, response) => {
if (response) {
req.session.user = result;
console.log(req.session.user[0].username);
if (req.session.user[0].username === username) {
res.send("OK");
} else {
res.send("NO");
}
} else{
res.send({message: "Wrong username/ password comination!"});
}
});
} else {
res.send({ message: "User doesn't exists"});
}
}
);
});
app.listen(3001, () => {
console.log("running server");
});



Comments