Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Joi = require('joi'); // Put required modules at the top
- const express = require('express');
- const app = express();
- const courses = [
- { id: 1, name: 'course1' },
- { id: 2, name: 'course2' },
- { id: 3, name: 'course3' },
- ];
- app.get('/', (req, res) => {
- res.json({msg: 'Hello world!!!'});
- });
- app.get('/api/courses', (req, res) => {
- res.send(courses);
- });
- app.post('/api/courses', (req, res) => {
- const { error } = validateCourse(req.body);
- if (error) return res.status(400).send(results.error.details[0].message);
- const course = {
- id: courses.length + 1,
- name: req.body.name
- };
- courses.push(course);
- res.send(course); // assigning the id on the server. return course to client
- });
- app.get('/api/courses/:id', (req, res) => {
- const course = courses.find(c => c.id === parseInt(req.params.id))
- if (!course) return res.status(404).send('The course with the given ID was not found');
- res.send(course);
- });
- app.put('/api/courses/:id', (req, res) => {
- const course = courses.find(c => c.id === parseInt(req.params.id))
- if (!course) return res.status(404).send('The course with the given ID was not found');
- const { error } = validateCourse(req.body);
- if (error) return res.status(400).send(results.error.details[0].message);
- course.name = req.body.name;
- res.send(course);
- });
- app.delete('/api/courses/:id', (req, res) => {
- const course = courses.find(c => c.id === parseInt(req.params.id))
- if (!course) return res.status(404).send('The course with the given ID was not found');
- const index = courses.indexOf(course);
- courses.splice(index, 1);
- res.send(course);
- })
- function validateCourse(course) {
- const schema = {
- name: Joi.string().min(3).required()
- };
- return Joi.ValidationError(course, schema);
- }
- // PORT
- const port = 3000;
- app.listen(port, () => console.log(`listening on port ${port}...`));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement