Welche spezifischen Änderungen müssen an dem folgenden Code vorgenommen werden, damit der JSON-Inhalt der message
-Variable vom Node.js-Server an den AngularJS-Client gesendet werden kann?Einschließlich JSON in Node.js res.redirect()
Der folgende Code befindet sich in der Routingdatei einer Node.js-App. Der folgende Code generiert JSON und leitet die Steuerung dann an den Handler redirectURL='/'
weiter, der die Datei ./public/index.html
an den AngularJS-Client sendet.
Es ist wichtig, dass der JSON message
in dieser Transaktion an den AngularJS-Client gesendet wird, sodass die AngularJS-Browser-App dafür verantwortlich sein kann, die eindeutige Identität des Benutzers zu bewahren. Auf diese Weise können nachfolgende Anfragen von AngularJS-Browser-Apps von Hunderten von Klonen dieser Node.js-App bedient werden, und jeder Klon verwendet den JSON, den er bei jeder Anfrage erhält, um sich mit einem Redis-Cluster zu verbinden, um die Benutzeridentität über mehrere zu verwalten Anfragen. Dadurch können sich Node.js Benutzeridentitäten nicht merken.
app.get('/some_endpoint', function(req, res) {
var redirectURL = '/';
request.post(otherServerUrl, function(err, response, body){
if(err){console.log('ERROR with token request.')}
var data = JSON.parse(body);
getUser(data.access_token).then(function(message) {
console.log('in callback, jwtJSON is: ');console.log(message);
res.redirect(redirectURL);
});
});
});
app.get('*', function(req, res) {
res.sendfile('./public/index.html'); // load the single view file (angular will handle the front-end)
});
Beachten Sie, dass die app.get('*', function(req, res)
muss in der Lage sein, auch Anforderungen von Benutzern zu dienen, die nicht von app.get('/some_endpoint', function(req, res)
umgeleitet haben und die somit haben keine message
JSON auf dem Server an den Browser App gesendet werden.
Wenn ich Ihre Frage richtig verstanden habe, sagen Sie, dass Ihr Frontend den Inhalt der Nachrichtenvariablen nicht empfängt? – gca
Ändern Sie 'res.redirect (redirectURL)' in 'res.json (message)'? – jfriend00
@AnveshChecka Ja, Sie verstehen richtig. Die Angular-App empfängt nur index.html. – FirstOfMany