trailing-slash
Add or remove trailing slashes, and redirect.
trailing-slash allows you to wrap a http.Server handler function, and
redirect when trailing slashes don't meet your expectations.
Example
var trailingSlash = require('trailing-slash')
var http = require('http')
var trailing = trailingSlash({slash: true}, handler)
var server = http.createServer(trailing)
server.listen(8080)
function handler (req, res) {
// any calls reaching here will have a trailing slash
console.log(req.url) // '/post/some-title/'
}API
trailingSlash([options] [, next])- Create a new handler, which returns a function. Accepts the following parameters:optionsobject: containing any of the following properties:slashboolean (default:true): whentruea URL will be redirected to contain a slash; whenfalse, it will be redirected to omit one.statusnumber (default:302): the URL to be used for redirect, which can be either301(permanent redirect) or302(temporary redirect)
nextfunction: called if the slashes match expectations, and a redirect is not necessary. When not provided, the returned function acts in a Connect-like middleware compatibility mode, where it expects the last parameter to be anextto be called upon pass.
Returns a function with the following signature:
trailing(request, response [, args ...])request- An http.IncomingMessage, as passed by an http.Server or similar.response- An http.ServerResponse, as passed by an http.Server or similar.args- Any number of arguments which will be passed to the matched function.
Middleware
When next is not specified, trailing-slash operates in a
Connect/Express-compatible mode, where it can be used as middleware:
var trailingSlash = require('trailing-slash')
var express = require('express')
var app = express()
app.use(trailingSlash({slash: true}))
app.listen(8080)License
MIT. See LICENSE for details.