2014-07-26 10 views
7

Jak przekierować użytkownika na inną trasę bez przekierowania adresu URL w vanilla Express? Na przykład, jeśli mam trasyPrzekierowanie Lokalizacja, ale nie 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); 

i wskazuję przeglądarkę do http://localhost:3000/old aplikacja pomyślnie przekierowania, a strona mówi This is the new route, ale URL uległa zmianie, jak również, aby http://localhost:3000/new. Jak mogę uzyskać dostęp aplikacji do przekierowania na trasę new, ale zachować stary adres URL (http://localhost:3000/old)?

W porządku instaluję inne oprogramowanie pośredniczące (tak jakbym nie miał już miliona), ale najlepiej, chciałbym to zrobić bez dodatkowego oprogramowania pośredniego. Ponadto robię to całkowicie w Express.js, bez PHP, nginx lub cokolwiek innego. Będę używał Angular.js w mojej aplikacji, ale wydaje się, że jest to raczej zachowanie po stronie serwera, niż po stronie klienta. Czasami przekierowuję po stronie klienta, ale nie chcę tego robić przez cały czas.

Odpowiedz

6

zamiast przekierowania, jak o tylko wysłać żądanie GET za pomocą request module

i zrobić zwrotnego do aktualizacji treści.

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

Dzięki, jestem rodzaj nowe do node/Express, jeśli nie mógł już mówić. Jaka jest różnica między tym a prośbą bez tego modułu? A może moduł po prostu ułatwia? – trysis

+0

cóż, znacznie ułatwiło to działanie, trochę jak obiekt XMLHttpRequest vs .ajax myślę. –

+0

Interesujące. OK, wygląda na to, że używam również modułu 'request'. Dzięki. – trysis

0

spróbować tej

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