i399exexpress/server.js

51 lines
1.3 KiB
JavaScript

'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() });
}