i399exexpress/server.js

62 lines
1.6 KiB
JavaScript
Raw Normal View History

2017-05-09 15:42:06 +03:00
'use strict';
const express = require('express');
2017-05-11 13:16:38 +03:00
const bodyParser = require('body-parser');
2017-05-09 15:42:06 +03:00
const TaskService = require('./task-service');
const dao = new TaskService();
const app = express();
2017-05-11 13:16:38 +03:00
app.use(bodyParser.json()); // before request handlers
app.use(express.static('./'));
2017-05-09 15:42:06 +03:00
app.get('/api/tasks', getTasks);
2017-05-11 13:16:38 +03:00
app.get('/api/tasks/:id', getTask);
app.post('/api/tasks', addTask);
app.delete('/api/tasks/:id', deleteTask);
app.use(errorHandler); // after request handlers
2017-05-09 15:42:06 +03:00
2017-05-10 09:57:37 +03:00
app.listen(3000, () => console.log('Server is running on port 3000'));
2017-05-09 15:42:06 +03:00
2017-05-09 15:51:03 +03:00
function getTasks(request, response) {
2017-05-11 13:16:38 +03:00
response.set('Content-Type', 'application/json');
2017-05-09 15:42:06 +03:00
dao.getTasks()
2017-05-09 15:51:03 +03:00
.then(tasks => {
2017-05-11 13:16:38 +03:00
response.json(tasks);
2017-05-09 15:51:03 +03:00
});
2017-05-09 15:42:06 +03:00
}
2017-05-11 13:16:38 +03:00
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());
}