hapi-url
v1.0.2
Published
Server's URL resolver for Hapi.js
Downloads
358
Readme
Hapi.js URL resolver
URL resolver for Hapi.js
How to use
Returns an URL object representing the current server's URL:
const HapiUrl = require('hapi-url');
console.log(HapiUrl(request));
console.log(HapiUrl(request).format());
console.log(HapiUrl(request).resolve("/path"));
Or, you can also write as:
const HapiUrl = require('hapi-url');
console.log(HapiUrl.current(request));
console.log(HapiUrl.resolve(request, "/path"));
hapi-url
looks for x-forwarded-proto
and x-forwarded-host
to resolve the current URL correctly when behind a reverse proxy.
If hapi-url
is not clever enought for your case, you can override the protocol
, host
and basePath
. basePath
can be used to resolve the URL when the proxy adds a prefix in the path:
const HapiUrl = require('hapi-url');
Hapi.init({
protocol: "https",
host: "hiddenproxy.example.com",
basePath: "/proxy/path/"
})
console.log(HapiUrl.format(request));
Example
const Hapi = require('hapi');
const HapiUrl = require('hapi-url');
const server = new Hapi.Server({port: 3000});
server.route({
method: 'GET',
path: '/{path*}', // match some path
handler: function(request, h) {
return h.response(HapiUrl.current(request)); // reply with current URL
}
});
server.start();