well-known-json
Illustraive usage example
var app = ;var wkj = ; // Each resource will be a separate JSON resource under the well-known enpointvar resources = 'foo/bar': // Will be at .well-known/foo/bar a: 1 b: 2 baz: // Will be at .well-known/baz obj: // Function properties are evaluated for each response generated { return Date; } // String properties which look like relative URIs are converted to absolute URIs uri: './relative/path' // Other things become JSON normally str: 'words here' ; // Options for well-known-json middleware (and middlewares it uses)var options = // Passed directly to cors middleware cors: /* whatever you can give the cors middleware */ // Optional base for resolving relative URIs // If omitted, wkj will use the protocol and host to which the request was sent baseUri: 'http://example.org/foo'; // Create a middleware instancevar wkjMiddleware = ; // Mount the middleware with expressapp; // Add additional resources after creation// They will be merged with a prexisting resource with the same namewkjMiddleware;
Features
- Enables CORS (including pre-flight) for its corresponding JSON documents
- Converts relative URIs to absolute
- Can have functions "in the documents" which get evaluated for each request
- Supports de-facto standard for reverse proxies (i.e. X-Forwarded-* headers)