# 23T1 tut05 functions ```javascript= import express, { json, Request, Response } from 'express'; import cors from 'cors'; import morgan from 'morgan'; import { port, url } from './config.json'; import { clear, peopleAdd, personView, personEdit, peopleList, personRemove, peopleStats, } from './people'; const app = express(); // Use middleware that allows for access from other domains (needed for frontend to connect) app.use(cors()); // Use middleware that allows us to access the JSON body of requests app.use(json()); // Use middleware to log (print to terminal) incoming HTTP requests (OPTIONAL) app.use(morgan('dev')); app.get('/', (req: Request, res: Response) => { res.json({ message: 'Welcome to the root URL of names ages!' }); }); app.method('/path', (json comms params) => { // get your input // call your function - store the o/p in a variable // check for errors in your func o/p // pass it as json o/p }) // **TODO TUTOR 0: /clear** // PATH: /clear // HTTP METHOD: delete // INPUT PARAMETER TYPE: QUERY // FUNC NAME: clear() // FUNC PARAMETERS: - // FUNC RETURNS: {} // WRAPPER: app.delete('/clear', (req: Request, res: Response) => { res.json(clear()) // or const result = clear(); if ('error' in result) { return res.status(400).json(result) } res.json(result) // OR // const my_result = clear(); // assuming it has value: const my_result = { status: 400 json: 'erroorrr' } const my_result1 = { status: 200 json: { id: 2 } } res.status(my_result.status).json(my_result.json) res.status(my_result1.status).json(my_result1.json) }) // Boost: /people/add** // PATH: // HTTP METHOD: post // INPUT PARAMETER TYPE: name: string, age: number // PARAMETERS: // FUNC RETURNS: {} or { error: string } // WRAPPER: app.post('/people/add/, (req: Request, res: Response) => { const { name, age } = req.body; const result = peopleAdd(name, age); if ('error' in result) { res.status(400); } res.json(result); }) // AERO: /people/list // PATH: /people/list // HTTP METHOD: GET // INPUT PARAMETER TYPE: query // PARAMETERS: minAge // RETURNS: Object with people : Array(that contains an array of all people) /* { "people": [ { "personId": 1531, "name": "Tammy McTamtam", "age": 22 } ] } */ // WRAPPER: app.get('people/list', (req: Request, res: Response) => { const minAge = parseInt(req.query.minAge); const result = peopleList(minAge); if ('error' in result) { return res.status(400).json(result) } res.status(200).json(result); }); // **TODO GROUP 3: /people/:peopleid** // PATH: // HTTP METHOD: // INPUT PARAMETER TYPE: // PARAMETERS: // RETURNS: --do we need this here, if not, then in which file do we care about them? // WRAPPER: // **TODO GROUP 4: /people/:peopleid** // PATH: // HTTP METHOD: // INPUT PARAMETER TYPE: // PARAMETERS: // RETURNS: --do we need this here, if not, then in which file do we care about them? // WRAPPER: // **TODO GROUP 5: /people/:peopleid** // PATH: // HTTP METHOD: // INPUT PARAMETER TYPE: // PARAMETERS: // RETURNS: --do we need this here, if not, then in which file do we care about them? // WRAPPER: // **TODO BONUS: /people/stats** // PATH: // HTTP METHOD: // INPUT PARAMETER TYPE: // PARAMETERS: // RETURNS: --do we need this here, if not, then in which file do we care about them? // WRAPPER: app.listen(port, () => { console.log(`Express Server started and awaiting requests at the URL: '${url}:${port}'`); });