feat: begin member
This commit is contained in:
parent
3b0d794791
commit
91e1f142ad
@ -21,6 +21,8 @@
|
|||||||
"typescript": "^5.6.3"
|
"typescript": "^5.6.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"bcrypt": "^5.1.1",
|
||||||
|
"body-parser": "^1.20.3",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"ejs": "^3.1.10",
|
"ejs": "^3.1.10",
|
||||||
"express": "^4.21.1",
|
"express": "^4.21.1",
|
||||||
|
@ -5,6 +5,7 @@ dotenv.config()
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import morgan from 'morgan';
|
import morgan from 'morgan';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import bodyParser from 'body-parser';
|
||||||
import routes from './routes';
|
import routes from './routes';
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
@ -19,6 +20,8 @@ console.log("=== END LOG CONFIG ===");
|
|||||||
// Need the path.join for node to resolve correctly the templates directory
|
// Need the path.join for node to resolve correctly the templates directory
|
||||||
app.set('views', path.join(__dirname, 'templates'));
|
app.set('views', path.join(__dirname, 'templates'));
|
||||||
app.set('view engine', 'ejs');
|
app.set('view engine', 'ejs');
|
||||||
|
app.use(bodyParser.urlencoded({ extended: true }));
|
||||||
|
app.use(bodyParser.json({ limit: '50mb' }));
|
||||||
|
|
||||||
// Add logs
|
// Add logs
|
||||||
app.use(morgan(log_format));
|
app.use(morgan(log_format));
|
||||||
|
38
back-end/src/controllers/members.controller.ts
Normal file
38
back-end/src/controllers/members.controller.ts
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import { Request, Response, Router } from 'express';
|
||||||
|
import bcrypt from 'bcrypt';
|
||||||
|
import { Member, User } from '../types/member';
|
||||||
|
|
||||||
|
const defaultMember = { id_member: -1, name: "unknown" };
|
||||||
|
|
||||||
|
function getMember(idOrName: number | string): Member {
|
||||||
|
return defaultMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createMember(name: string, passwd: string): Member {
|
||||||
|
return defaultMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
const register = (req: Request, res: Response) => {
|
||||||
|
if (!req || !req.body || !req.body.name || !req.body.password) {
|
||||||
|
console.log(req.body);
|
||||||
|
res.send(req.body);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const name: string = req.body.name;
|
||||||
|
bcrypt.genSalt(10, (err, salt) => {
|
||||||
|
if (err) {
|
||||||
|
// Handle error
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bcrypt.hash(req.body.password, salt, (err, hash) => {
|
||||||
|
if (err) {
|
||||||
|
// Handle error
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.send(createMember(name, hash));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export { register };
|
@ -1,7 +1,8 @@
|
|||||||
import { Router } from "express";
|
import express from 'express';
|
||||||
|
import membersRoute from './members.route'
|
||||||
import db from '../db';
|
import db from '../db';
|
||||||
|
|
||||||
const routes = Router();
|
const routes = express.Router();
|
||||||
|
|
||||||
routes.get('/', async (_req, res) => {
|
routes.get('/', async (_req, res) => {
|
||||||
const message = await db.example_request();
|
const message = await db.example_request();
|
||||||
@ -13,4 +14,6 @@ routes.get("/message", async (_req, res) => {
|
|||||||
res.render('index.ejs', { message });
|
res.render('index.ejs', { message });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
routes.use("/members", membersRoute);
|
||||||
|
|
||||||
export default routes;
|
export default routes;
|
||||||
|
8
back-end/src/routes/members.route.ts
Normal file
8
back-end/src/routes/members.route.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import express from 'express';
|
||||||
|
import { register } from '../controllers/members.controller';
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.post('/register', register);
|
||||||
|
|
||||||
|
export default router;
|
8
back-end/src/types/member.ts
Normal file
8
back-end/src/types/member.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
type Member = {
|
||||||
|
id_member: number,
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
type User = Member | { password: string };
|
||||||
|
|
||||||
|
export { Member, User };
|
Loading…
x
Reference in New Issue
Block a user