2014-07-26 18 views
7

Come si reindirizza l'utente a una diversa route senza reindirizzare l'URL in vanilla Express? Per esempio, se ho i percorsiPosizione di reindirizzamento ma non URL

express = require('express'); 
app = express(); 

app.route('/old').get(function(req, res, next) { 
    res.redirect('/new'); 
}); 

app.route('/new').get(function(req, res, next) { 
    res.send('This is the new route'); 
}); 

app.listen(3000); 

e indico il mio browser per http://localhost:3000/old, l'applicazione reindirizza con successo, e la pagina dice This is the new route, ma l'URL è cambiata, come pure, per http://localhost:3000/new. Come faccio a reindirizzare l'applicazione sulla route new ma mantenere il vecchio URL (http://localhost:3000/old)?

Sto bene installando un altro middleware (come se non ne abbia già già un milione), ma idealmente, mi piacerebbe farlo senza middleware extra. Inoltre, lo sto facendo completamente in Express.js, senza PHP, nginx o qualsiasi altra cosa. Userò Angular.js nella mia applicazione, ma sembra più un comportamento lato server, piuttosto che lato client. A volte faccio il reindirizzamento sul lato client, ma non voglio farlo tutto il tempo.

risposta

6

piuttosto che reindirizzare, come circa basta inviare una richiesta GET utilizzando request module

e fare un callback per aggiornare il contenuto.

var request = require('request'); 

app.route('/old').get(function(req, res, next) { 

    request.get('/new', function(err, response, body) { 
    if (!err) { 
     req.send(body); 
    } 
    });   
}); 
+0

Grazie, io sono sorta di nuovo al nodo/Express, se non si poteva già dire. Ora, qual è la differenza tra questo e fare una richiesta senza quel modulo? Oppure il modulo rende tutto più semplice? – trysis

+0

beh, ha reso le cose molto più semplici, un po 'come l'oggetto XMLHttpRequest vs $ .ajax, penso. –

+0

Interessante. OK, beh, sembra che sto usando anche il modulo 'request'. Grazie. – trysis

0

provare questo

var request = require('request'); 
    app.get('/old', function(req, res) { 
     request.get('new', function(err, response, body) { 
     if (!err) { 
     res.send(body); 
     } 
     }); 
    }); 
Problemi correlati