2015-02-05 16 views
16

Ödeme başarılı olduğunda node.js ve braintree'yi kullanarak bir ödeme sistemim var. Kullanıcıyı arka uçlara göndermek istiyorum. Arka tarafım başka bir yerde ayarlanmış.Express'te, kullanıcıyı harici bir URL'ye nasıl yönlendiririm?

Ben

res.writeHead(301, 
    {Location: 'http://app.example.io'} 
); 
res.end(); 

denedi Yani window.location besbelli kullanılamaz. Bir kullanıcıyı yönlendirmek için herhangi bir yol düşünemiyorum?

cevap

31

Sen res.redirect('http://app.example.io');

Ekspres docs yapabilirsiniz: http://expressjs.com/api.html#res.redirect

+0

Daha önce denedim ama tekrar denediğini düşünmüyorum. –

+2

'/' –

+0

adresine yönlendiriyordum, sadece kişisel bir uygulamada test ettim ve doğru bir şekilde yönlendiriyordum. Soru: Hangi ekspres versiyonunu kullanıyorsunuz? – TheIronDeveloper

1

Sadece aynı sorunu var ve "sonraki" ekleyerek işe gördü. Router'ları kullanıyorum, belki benimkiyle aynı sorunu mu yaşıyorsunuz? Bir dahaki sefere, hiçbir render motoru ile ilgili hatam var ... garip

var express = require('express'); 
var router = express.Router(); 
var debug = require('debug')('node_blog:server'); 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    debug("index debug"); 
    res.render('index.html', { title: 'Express' }); 
}); 

router.post("/", function (req, res, next) { 
    //var pass = req.body("password"); 
    //var loginx = req.body("login"); 
    //res.render('index.html', { title: 'Express' }); 
    res.redirect("/users") 
    next 
}); 

module.exports = router; 
2

Seçilen cevap benim için çalışmadı. Beni şu yöne yönlendiriyordu: locahost:8080/www.google.com - bu saçmalık.

301 Moved Permanently, aşağıda görüldüğü gibi res.status(301) ürününe dahil edilmelidir.

app.get("/where", (req, res) => { 

    res.status(301).redirect("https://www.google.com") 

}) 

Arka uçunuz başka bir yerde bulunduğundan aynı durumdasınız.

İlgili konular