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)));