hops-server
v9.7.0
Published
Provides common functionality for express-like servers
Downloads
14
Readme
Hops Server
This package is deprecated. Please use hops-express instead.
Hops server is a small collection of shared functionality that can be used in express-like interfaces to register the hops-middleware.
It also exports a simple middleware that takes care of rewriting the paths of incoming http requests based on the values set in hops-config.
Exports:
rewritePath(request, response, next) => void
rewritePath
is an express-style middleware that adds a trailing slash to the url of the incoming request.registerMiddleware(app, middleware) => void
registerMiddleware
is a helper function that registers a wildcard middleware for every location defined in the hops-config, if available. Otherwise it registers the given middleware for a wildcard route at the root.run(app, callback) => void
run
is a helper function that starts the express-like server with the parameters defined in hops-config.bootstrap(app, hopsConfig) => void
teardown(app, hopsConfig) => void
These functions allow to customize the server through hops-config. It is possible to definehopsConfig.bootstrapServer
andhopsConfig.teardownServer
to override these functions and execute some custom logic on theapp
object.
Target Audience
If you want to build an express-like server and reuse the hops-config while doing so, then this middleware will help dealing with the locations and basePath config.
Example
app.js
var path = require('path');
var express = require('express');
var server = require('hops-server');
var hopsConfig = require('hops-config');
// middleware generated by hops-build, based on the webpack node config
var pathToGeneratedMiddleware = path.join(hopsConfig.cacheDir, 'server.js');
// generic Express server application
var app = express();
app.use(server.rewritePath);
// bootstrap and teardown provide hooks to customize the server through hops-config
server.bootstrap(app, hopsConfig);
server.registerMiddleware(require(pathToGeneratedMiddleware));
server.teardown(app, hopsConfig);
// actually run application
server.run(app);