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