Skip to content

Commit 97fb29d

Browse files
committed
create todo controller, render view helper and render 404 page if path not found
1 parent f5dcac9 commit 97fb29d

File tree

4 files changed

+21
-11
lines changed

4 files changed

+21
-11
lines changed

src/app.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import authRoute from './routes/auth.route';
2222
import healthCheckRoute from './routes/health-check.route';
2323
import mainRoute from './routes/main.route';
2424
import todoRoute from './routes/todo.route';
25+
import { render } from './app/helpers/render';
2526

2627
/**
2728
* @description Init express application
@@ -50,7 +51,7 @@ const init = function (): Application {
5051
app.use(methodOverride('_method'));
5152

5253
// * Todo Route with view engine
53-
app.use(todoRoute);
54+
app.use('/', todoRoute);
5455

5556
// * Main Route
5657
app.use('/api', mainRoute);
@@ -65,7 +66,7 @@ const init = function (): Application {
6566
app.use('/api/admin/users', auth, isAdmin, userRoute);
6667

6768
// * 404 Not Found
68-
app.use((_, res) => resFailed(res, 404, 'Path Not Found. Please go to /api'));
69+
app.use((_, res) => render(res, '404', { title: '404 Not Found', layout: 'layouts/mainLayout' }));
6970

7071
// * Return express app
7172
return app;
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Request, Response } from 'express';
2+
import { render } from '../helpers/render';
3+
4+
function index(_: Request, res: Response) {
5+
const data = { title: 'Node JS Todo App', layout: 'layouts/mainLayout', todos: [] };
6+
return render(res, 'index', data);
7+
}
8+
9+
export default { index };

src/app/helpers/render.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { Response } from 'express';
2+
3+
export function render(res: Response, view: string, data?: object) {
4+
return res.render(view, data);
5+
}

src/routes/todo.route.ts

+4-9
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,16 @@
33
* @author {Deo Sbrn}
44
*/
55

6-
import express, { Request, Response, Router } from 'express';
6+
import express, { Router } from 'express';
7+
import TodoController from '../app/controllers/todo.controller';
78

89
const router: Router = express.Router();
910

1011
/**
1112
* @method GET
1213
* @access public
13-
* @endpoint /api
14+
* @endpoint /
1415
*/
15-
router.get('/todo', (_: Request, res: Response) => {
16-
return res.render('index', {
17-
title: 'Node JS Todo App',
18-
layout: 'layouts/mainLayout',
19-
todos: [],
20-
});
21-
});
16+
router.get('/', TodoController.index);
2217

2318
export default router;

0 commit comments

Comments
 (0)