diff --git a/lib/application.js b/lib/application.js index 3eb7a974..4059de2b 100644 --- a/lib/application.js +++ b/lib/application.js @@ -333,6 +333,9 @@ app.enableAuth = function() { /** * Initialize an application from an options object or a set of JSON and JavaScript files. * + * **Deprecated. Use the package + * [loopback-boot](https://github.com/strongloop/loopback-boot) instead.** + * * This function takes an optional argument that is either a string or an object. * * If the argument is a string, then it sets the application root directory based on the string value. Then it: @@ -691,133 +694,6 @@ function clearHandlerCache(app) { app._handlers = undefined; } -/*! - * This function is now deprecated. - * Install all express middleware required by LoopBack. - * - * It is possible to inject your own middleware by listening on one of the - * following events: - * - * - `middleware:preprocessors` is emitted after all other - * request-preprocessing middleware was installed, but before any - * request-handling middleware is configured. - * - * Usage: - * ```js - * app.once('middleware:preprocessors', function() { - * app.use(loopback.limit('5.5mb')) - * }); - * ``` - * - `middleware:handlers` is emitted when it's time to add your custom - * request-handling middleware. Note that you should not install any - * express routes at this point (express routes are discussed later). - * - * Usage: - * ```js - * app.once('middleware:handlers', function() { - * app.use('/admin', adminExpressApp); - * app.use('/custom', function(req, res, next) { - * res.send(200, { url: req.url }); - * }); - * }); - * ``` - * - `middleware:error-loggers` is emitted at the end, before the loopback - * error handling middleware is installed. This is the point where you - * can install your own middleware to log errors. - * - * Notes: - * - The middleware function must take four parameters, otherwise it won't - * be called by express. - * - * - It should also call `next(err)` to let the loopback error handler convert - * the error to an HTTP error response. - * - * Usage: - * ```js - * var bunyan = require('bunyan'); - * var log = bunyan.createLogger({name: "myapp"}); - * app.once('middleware:error-loggers', function() { - * app.use(function(err, req, res, next) { - * log.error(err); - * next(err); - * }); - * }); - * ``` - * - * Express routes should be added after `installMiddleware` was called. - * This way the express router middleware is injected at the right place in the - * middleware chain. If you add an express route before calling this function, - * bad things will happen: Express will automatically add the router - * middleware and since we haven't added request-preprocessing middleware like - * cookie & body parser yet, your route handlers will receive raw unprocessed - * requests. - * - * This is the correct order in which to call `app` methods: - * ```js - * app.boot(__dirname); // optional - * - * app.installMiddleware(); - * - * // [register your express routes here] - * - * app.listen(); - * ``` - */ -app.installMiddleware = function() { - var loopback = require('../'); - - /* - * Request pre-processing - */ - this.use(loopback.favicon()); - // TODO(bajtos) refactor to app.get('loggerFormat') - var loggerFormat = this.get('env') === 'development' ? 'dev' : 'default'; - this.use(loopback.logger(loggerFormat)); - this.use(loopback.cookieParser(this.get('cookieSecret'))); - this.use(loopback.token({ model: this.models.accessToken })); - this.use(loopback.bodyParser()); - this.use(loopback.methodOverride()); - - // Allow the app to install custom preprocessing middleware - this.emit('middleware:preprocessors'); - - /* - * Request handling - */ - - // LoopBack REST transport - this.use(this.get('restApiRoot') || '/api', loopback.rest()); - - // Allow the app to install custom request handling middleware - this.emit('middleware:handlers'); - - // Let express routes handle requests that were not handled - // by any of the middleware registered above. - // This way LoopBack REST and API Explorer take precedence over - // express routes. - this.use(this.router); - - // The static file server should come after all other routes - // Every request that goes through the static middleware hits - // the file system to check if a file exists. - this.use(loopback.static(path.join(__dirname, 'public'))); - - // Requests that get this far won't be handled - // by any middleware. Convert them into a 404 error - // that will be handled later down the chain. - this.use(loopback.urlNotFound()); - - /* - * Error handling - */ - - // Allow the app to install custom error logging middleware - this.emit('middleware:error-handlers'); - - // The ultimate error handler. - this.use(loopback.errorHandler()); -}; - /** * Listen for connections and update the configured port. *