Source: src/index.js

import server from './server';
import colors from 'colors';
import knex from '../db/knex_router';

/**
 * Returns home page of API
 * @name Home
 */
server.get('/', function(req, res) {
    console.log('Connectting to '+req.url);
    res.send(`<h1>Hello, world</h1>
    
    Hello, world ! This is server talking to you live on port `+port+' !');
});

/**
 * Get table data
 * @name Database: Table get
 * @argument id - Table user wants
 */
server.get('/db/:id?', function(req, res) {

    // get columns from query
    let columns;
    if (req.query.columns) {
        columns = req.query.columns.split(',');
    } else {
        columns = null;
    }
    console.log(columns);
    
    knex.select(columns).from(req.params.id).then(function(table) {
        res.setHeader("Content-Type", "application/json");
        res.write(JSON.stringify(table,null,2));
        res.end();
    });
});

/**
 * @name Error 404 catcher
 * @function
 */
server.use((req, res, next) => {
    let err = new Error('Not found');
    err.status = 404;
    next(err);
});

/**
 * @name Error 404 handler
 * @function
 */
server.use((err, req, res, next) => {
    res.locals.message = err.message;
    res.locals.error = req.server.get('env') === 'development' ? err : {};

    res.status(err.status || 500);
    res.render('Error');
});

// define port server is to listen on
const port = process.env.PORT || 3000;

server.listen(port, () => console.log(colors.blue('Express server running on port', port)));