From d1e5cd4709ca48b35bc83aa6117ffbeeb6ead614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Thu, 3 Jul 2014 10:24:48 +0200 Subject: [PATCH 1/2] Simplify templates - use `app.get('url')` --- templates/api-server/component.js | 2 +- templates/server/template/boot/explorer.js | 3 ++- templates/server/template/server.js | 6 ++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/templates/api-server/component.js b/templates/api-server/component.js index cfa2b7ad..e6198d0a 100644 --- a/templates/api-server/component.js +++ b/templates/api-server/component.js @@ -16,7 +16,7 @@ template.package = { "dependencies": { "compression": "^1.0.3", "errorhandler": "^1.1.1", - "loopback": "~2.0.0-beta3", + "loopback": "~2.0.0-beta5", "loopback-boot": "~2.0.0-beta1", "loopback-datasource-juggler": "~2.0.0-beta2" }, diff --git a/templates/server/template/boot/explorer.js b/templates/server/template/boot/explorer.js index 67e3ca73..7fec2169 100644 --- a/templates/server/template/boot/explorer.js +++ b/templates/server/template/boot/explorer.js @@ -14,7 +14,8 @@ module.exports = function mountLoopBackExplorer(server) { var explorerApp = explorer(restApp, { basePath: restApiRoot }); server.use('/explorer', explorerApp); - server.once('started', function(baseUrl) { + server.once('started', function() { + var baseUrl = server.get('url').replace(/\/$/, ''); // express 4.x (loopback 2.x) uses `mountpath` // express 3.x (loopback 1.x) uses `route` var explorerPath = explorerApp.mountpath || explorerApp.route; diff --git a/templates/server/template/server.js b/templates/server/template/server.js index 36147165..cbf6d4d0 100644 --- a/templates/server/template/server.js +++ b/templates/server/template/server.js @@ -28,10 +28,8 @@ app.use(loopback.errorHandler()); app.start = function() { // start the web server return app.listen(function() { - var host = app.get('host') || '0.0.0.0'; - var baseUrl = 'http://' + host + ':' + app.get('port'); - app.emit('started', baseUrl); - console.log('Web server listening at: %s', baseUrl); + app.emit('started'); + console.log('Web server listening at: %s', app.get('url')); }); }; From 90ca5d44910e43c24bd0c8073d6ca2646e15718e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Thu, 3 Jul 2014 12:51:08 +0200 Subject: [PATCH 2/2] api-server: add `/` route The root URL of an api server returns `loopback.status` instead of `404 Not Found` now. --- templates/api-server/template/server/boot/root.js | 6 ++++++ test/end-to-end.js | 10 ++++++++++ 2 files changed, 16 insertions(+) create mode 100644 templates/api-server/template/server/boot/root.js diff --git a/templates/api-server/template/server/boot/root.js b/templates/api-server/template/server/boot/root.js new file mode 100644 index 00000000..e1061423 --- /dev/null +++ b/templates/api-server/template/server/boot/root.js @@ -0,0 +1,6 @@ +module.exports = function(server) { + // Install a `/` route that returns server status + var router = server.loopback.Router(); + router.get('/', server.loopback.status()); + server.use(router); +}; diff --git a/test/end-to-end.js b/test/end-to-end.js index 3756d9b3..8194e4de 100644 --- a/test/end-to-end.js +++ b/test/end-to-end.js @@ -29,6 +29,16 @@ describe('end-to-end', function() { app = require(SANDBOX); }); + it('provides status on the root url', function(done) { + request(app) + .get('/') + .expect(200, function(err, res) { + if (err) done(err); + expect(res.body).to.have.property('uptime'); + done(); + }); + }); + it('has authentication enabled', function(done) { request(app) .get('/api/users')