UNPKG

service-template-node

Version:
82 lines (62 loc) 1.47 kB
'use strict'; const sUtil = require('../lib/util'); /** * The main router object */ const router = sUtil.router(); /** * The main application object reported when this module is require()d */ let app; /** * GET / * Gets some basic info about this service */ router.get('/', (req, res) => { // simple sync return res.json({ name: app.info.name, version: app.info.version, description: app.info.description, home: app.info.homepage }); }); /** * GET /name * Gets the service's name as defined in package.json */ router.get('/name', (req, res) => { // simple return res.json({ name: app.info.name }); }); /** * GET /version * Gets the service's version as defined in package.json */ router.get('/version', (req, res) => { // simple return res.json({ version: app.info.version }); }); /** * ALL /home * Redirects to the service's home page if one is given, * returns a 404 otherwise */ router.all('/home', (req, res) => { const home = app.info.homepage; if (home && /^http/.test(home)) { // we have a home page URI defined, so send it res.redirect(301, home); } else { // no URI defined for the home page, error out res.status(404).end(`No home page URL defined for ${app.info.name}`); } }); module.exports = (appObj) => { app = appObj; return { path: '/_info', skip_domain: true, router }; };