express-redirect
Advanced tools
Comparing version
@@ -0,0 +0,0 @@ // module dependencies |
@@ -0,0 +0,0 @@ // expose parser |
@@ -0,0 +0,0 @@ // module dependencies |
@@ -16,9 +16,19 @@ // module dependencies | ||
// append the query string, if it exists | ||
function appendQueryString(compiled, req) { | ||
var queryPos = req.url.indexOf("?"); | ||
return ~queryPos | ||
? compiled + req.url.substr(queryPos) | ||
: compiled; | ||
} | ||
// app.redirect(route, target, status) | ||
function redirect(route, target, status, method, check) { | ||
var args = sanitize(arguments, redirect, [[String, RegExp], ["/"], [302], ["all"], [Function, false]]) | ||
function redirect(route, target, status, method, qsa, check) { | ||
var args = sanitize(arguments, redirect, [[String, RegExp], ["/"], [302], ["all"], [false], [Function, false]]) | ||
, status = args.status | ||
, method = args.method.toLowerCase() | ||
, target = precompile(parsePath(args.route), parsePath(args.target)) | ||
, check = args.check; | ||
, check = args.check | ||
, qsa = args.qsa; | ||
@@ -29,2 +39,3 @@ // register route | ||
var compiled = compile(req.params, target); | ||
if(qsa) compiled = appendQueryString(compiled, req); | ||
@@ -36,5 +47,7 @@ if(compiled != req.url) res.redirect(status, compiled); | ||
this[method](route, function(req, res, next) { | ||
var compiled = compile(req.params, target) | ||
, result = check(route, compiled, req, res); | ||
var compiled = compile(req.params, target); | ||
if(qsa) compiled = appendQueryString(compiled, req); | ||
var result = check(route, compiled, req, res); | ||
if(result === false) return next(); | ||
@@ -41,0 +54,0 @@ else if(typeof result == "string") res.redirect(status, result); |
{ | ||
"name": "express-redirect", | ||
"description": "Flexible redirection plugin", | ||
"version": "1.1.1", | ||
"version": "1.2.0", | ||
"author": "Jan Buschtöns <buschtoens@gmail.com>", | ||
@@ -10,3 +10,3 @@ "contributors": [ | ||
"email": "buschtoens@gmail.com", | ||
"url": "https://github.com/silvinci" | ||
"url": "https://github.com/buschtoens" | ||
} | ||
@@ -25,3 +25,3 @@ ], | ||
], | ||
"repository": "git://github.com/silvinci/express-redirect", | ||
"repository": "git://github.com/buschtoen/express-redirect", | ||
"main": "index", | ||
@@ -28,0 +28,0 @@ "engines": { |
@@ -32,2 +32,5 @@ # express-redirect [](https://travis-ci.org/phvcky/express-redirect) [](https://www.npmjs.org/package/express-redirect) | ||
// if you want to append the query string (?foo=bar) | ||
app.redirect("/p/:id", "/page/:id", 301, true); | ||
// no id, goto page # 1 | ||
@@ -53,3 +56,3 @@ app.redirect("/p/:id?", "/page/:id(1)"); | ||
## API | ||
express-redirect mounts the new method `app.redirect(route, target, [status], [method])` to your app. | ||
express-redirect mounts the new method `app.redirect(route, target, [status], [method], [qsa])` to your app. | ||
You can access it just like `app.get()` or `app.post()` etc. | ||
@@ -89,3 +92,7 @@ | ||
### qsa | ||
The parameter `qsa` is a boolean and is optional. It defaults to `false`. | ||
If set to `true`, the query string will be appended. By default, it will be discarded. | ||
## License | ||
@@ -92,0 +99,0 @@ |
@@ -0,0 +0,0 @@ // get the lib |
@@ -0,0 +0,0 @@ [ |
@@ -0,0 +0,0 @@ [ |
@@ -0,0 +0,0 @@ // get the lib |
@@ -0,0 +0,0 @@ // get the lib |
@@ -0,0 +0,0 @@ // get the lib and express |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
15924
0.65%366
2.81%119
6.25%