2015-02-05 4 views
16

Ich habe ein Zahlungssystem mit node.js und braintree, wenn die Zahlung erfolgreich ist, möchte ich den Benutzer an das Back-End senden. Mein Backend ist anderswo eingerichtet.In Express, wie ich einen Benutzer auf eine externe URL umleiten?

Ich habe versucht,

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

So ist window.location offenbar nicht zur Verfügung. Ich kann mir keine Möglichkeiten vorstellen, einen Benutzer umzuleiten?

Antwort

31

können Sie res.redirect('http://app.example.io'); tun

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

+0

Ich versuchte das früher, aber ich denke nicht, dass es funktionierte, es wieder zu versuchen. –

+2

Es leitet um '/' –

+0

Ich habe es gerade auf einer persönlichen App getestet und es leitet richtig um. Frage: Welche Version von Express verwenden Sie? – TheIronDeveloper

1

ich es durch den Zusatz "next" nur das gleiche Problem haben und bekam arbeiten. Ich benutze Router, vielleicht hast du dasselbe Problem wie meines? Ohne nächsten, ich habe Fehler über keine Render-Engine ... komisch

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

Die ausgewählte Antwort funktionierte nicht für mich. Es leitete mich um: locahost:8080/www.google.com - was Unsinn ist.

301 Moved Permanently muss mit res.status(301) wie folgt enthalten sein.

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

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

}) 

Sie sind in der gleichen Situation, da Ihr Back-End woanders ist.

Verwandte Themen