Vite front end #3

Merged
innocuous-symmetry merged 4 commits from vite-front-end into master 2022-05-29 00:13:05 +00:00
5 changed files with 1096 additions and 0 deletions

1038
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,10 +10,13 @@
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.0.1",
"body-parser": "^1.20.0",
"cors": "^2.8.5",
"dotenv": "^16.0.0",
"express": "^4.17.3",
"passport": "^0.6.0",
"passport-local": "^1.0.0",
"pg": "^8.7.3"
}
}

View File

@@ -3,8 +3,12 @@ const apiRouter = express.Router();
const userRouter = require('./user');
const productsRouter = require('./products');
const registerRouter = require('./register');
const loginRouter = require('./login');
apiRouter.use('/users', userRouter);
apiRouter.use('/products', productsRouter);
apiRouter.use('/register', registerRouter);
apiRouter.use('/login', loginRouter);
module.exports = apiRouter;

26
routes/login.js Normal file
View File

@@ -0,0 +1,26 @@
const bcrypt = require('bcrypt');
const loginRouter = require('express').Router();
const client = require('../db/Client');
loginRouter.route('/').post(async (req, res) => {
const newClient = client();
const { email, password } = req.body;
try {
newClient.connect().then(console.log("Connection successful."));
let hash = await newClient.query("SELECT password FROM users WHERE email = ($1)", [email]);
hash = hash.rows[0].password;
let match = await bcrypt.compare(password, hash);
if (match) res.send("Login successful!");
} catch(e) {
console.log(e);
} finally {
await newClient.end()
.then(console.log("Client disconnected."));
}
});
module.exports = loginRouter;

25
routes/register.js Normal file
View File

@@ -0,0 +1,25 @@
const bcrypt = require('bcrypt');
const registerRouter = require('express').Router();
const client = require('../db/Client');
registerRouter.route('/').post(async (req, res) => {
const newClient = client();
const { name, email, password } = req.body;
const salt = await bcrypt.genSalt(10);
const hash = await bcrypt.hash(password, salt);
try {
newClient.connect().then(console.log("Connection successful."));
await newClient.query("INSERT INTO users (name, email, password) values ($1, $2, $3)", [name, email, hash]);
res.sendStatus(200);
} catch(e) {
console.log(e);
} finally {
await newClient.end()
.then(console.log("Client disconnected."));
}
});
module.exports = registerRouter;