express-request-transfer

    1.2.3 • Public • Published

    express-request-transfer

    Build Status NPM version Downloads Twitter Follow

    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

    1. Fork it!
    2. Create your feature branch: git checkout -b my-new-feature
    3. Commit your changes: git commit -m 'my new feature'
    4. Push to the branch: git push origin my-new-feature
    5. Submit a pull request

    History

    For change-log, check releases.

    Install

    npm i express-request-transfer

    DownloadsWeekly Downloads

    18

    Version

    1.2.3

    License

    ISC

    Unpacked Size

    10.2 kB

    Total Files

    8

    Last publish

    Collaborators

    • john-doherty