'use strict'; const express = require('express'); const bodyParser = require('body-parser'); const TaskService = require('./task-service'); const dao = new TaskService(); const app = express(); app.use(bodyParser.json()); // before request handlers app.use(express.static('./')); app.get('/api/tasks', getTasks); app.get('/api/tasks/:id', getTask); app.post('/api/tasks', addTask); app.delete('/api/tasks/:id', deleteTask); app.use(errorHandler); // after request handlers app.listen(3000, () => console.log('Server is running on port 3000')); function getTasks(request, response) { response.set('Content-Type', 'application/json'); dao.getTasks() .then(tasks => { response.json(tasks); }); } function getTask(request, response, next) { var id = request.params.id; dao.getTask(id) .then(task => { response.set('Content-Type', 'application/json'); response.json(task); }).catch(next) } function addTask(request, response) { var task = request.body dao.addTask(task) .then(task => { response.set('Content-Type', 'application/json'); response.json(task); }).catch(next) } function deleteTask(request, response) { var id = request.params.id; dao.deleteTask(id) .then(task => { response.set('Content-Type', 'application/json'); response.json(task); }).catch(next) } function errorHandler(error, request, response, next) { // there must be 4 arguments response.status(500).send('error: ' + error.toString()); }