summaryrefslogtreecommitdiffstats
path: root/route.js
blob: e8f614f42f9ceedd0501dea192af997dcf11d982 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * route.js
 *
 * used for handling pathnames in url query
 */

var util = require('util');

var pnhandler = require('./pnhandler');

/* list of handlers, not a global variable */
var handle = {
    '/': pnhandler.noop,
    '/register': pnhandler.register,
    '/login': pnhandler.login,
    '/poll': pnhandler.poll,
    '/upload': pnhandler.upload
};

function route(query, res) {
    if (typeof handle[query.pathname] === 'function' ) {
        handle[query.pathname](query, res);
    } else {
        util.log('[route] no handler found for ' + query.pathname);

        res.writeHead(404, {'Content-Type': 'text/html'});
        res.write('<!DOCTYPE html>\n' +
                    '<html>\n' +
                    '<body>\n' +
                    '\t404 Not found\n' +
                    '</body>\n' +
                  '</html>\n');
        res.end();
    }
}

exports.route = route;