From e6aaeca26059ed71cdaa98b445f6c228249dc24e Mon Sep 17 00:00:00 2001 From: Jurgen Van de Moere Date: Fri, 18 Sep 2015 17:45:59 +0200 Subject: [PATCH] docs(environment): add section for subtle difference between Harp as library and Harp server --- public/docs/environment/lib.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/public/docs/environment/lib.md b/public/docs/environment/lib.md index 45c8e9e..1ae667c 100644 --- a/public/docs/environment/lib.md +++ b/public/docs/environment/lib.md @@ -80,3 +80,32 @@ And that should output this:

Hello World

bar

``` + +## Subtle difference with Harp server + +Mounting Harp as a library using `harp.mount()` does not load all the layers of middleware that a regular Harp server (using `harp.server()`) does. + +However, `harp.middleware` conveniently exposes all available Harp middleware such as `fallback`, `notFound` and `underscore` so you can easily add additional Harp features to your server in a way that makes sense for your application. + +For example: + +```javascript +var express = require("express"); +var harp = require("harp"); +var app = express(); +var appRoot = __dirname + "/public"; + +// Ignore files that start with underscores +app.use(harp.middleware.underscore); + +// Serve static assets +app.use(express.static(appRoot)); + +// Let harp serve application +app.use(harp.mount(appRoot)); + +// Let 200.jade catch all other requests +app.use(harp.middleware.fallback); + +app.listen(9000); +```