express-request-transfer
v1.2.3
Published
Brings the power of Server.Transfer from C# to express
Downloads
216
Maintainers
Readme
express-request-transfer
The power of C# Server.Transfer for node/express req.transfer('/new-route', preserveData)
How is this different from res.redirect
?
Use res.redirect('/new-route')
when:
- you want to redirect the request to another server
- you don't care about additional round-trips to the server
- you don't need to preserve Query String and Form Variables
- you want the user to see the new redirected URL (and maybe bookmark it)
Use req.transfer('/new-route', preserveData)
when:
- you want to transfer current request to another URL on the same server
- you want to reduce server load by avoiding unnecessary round-trips
- you want to preserve Query String and Form Variables (optional)
- you don't need the user to see the final URL in their browser
Installation
npm install --save express-request-transfer
Usage
var express = require('express');
var requestTransfer = require('express-request-transfer');
var app = express();
// add req.transfer method to all routes
app.use(requestTransfer);
// route 1
app.get('/api/time', function(req, res){
res.send(new Date());
});
// route 2
app.post('/', function(req, res){
// transfer request without form/query data
req.transfer('/api/time');
// transfer request with incoming form/query data
// req.transfer('/api/time', true);
});
If the user requested http://localhost route 2 would receive the request and switch code execution to route 1. The response from route 1 would be returned to the client. The users browser URL would be unchanged.
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -m 'my new feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request
History
For change-log, check releases.