2016-05-09 8 views
0

Ich habe eine MEAN-Anwendung, und ich handle Authentifizierung mit Pass. Was ich tun möchte, ist genau, was passiert mit dem Benutzer auf dem Reisepass, der von der Anfrage wie req.user zugegriffen werden kann. Ich habe keine Lösungen gefunden, um dieses Ergebnis zu erreichen. Kannst du mir einen Rat geben?Hinzufügen einer Eigenschaft zu der Anfrage mit Knoten und Express

Antwort

1

Sie können Eigenschaften zu Anfrage- oder Antwortobjekten hinzufügen, indem Sie eine Middleware erstellen und sie in Ihrer App verwenden. Z.B.

// Defining middleware 
function myMiddleware(req, res, next) { 
    req.myField = 12; 
    next(); 
} 
// Using it in an app for all routes (you can replace * with any route you want) 
app.use('*', myMiddleware) 

Jetzt sind alle Ihre Anfrage Objekte in Ihrem Handler wird myField Eigenschaft.

+0

Beeinträchtigt dies nicht die Leistung? Ich meine, es müsste durch jede Route zurückgesetzt werden, ich wollte es so etwas wie Individuum, ähnlich wie Benutzerinformationen, ist es mit Sitzungen oder so ähnlich? – Joao

+1

Es hat keinen Einfluss auf die Leistung. Und Sie sollten sich immer daran erinnern, dass vorzeitige Optimierung ein Übel ist. Das Anfrageobjekt wird für jede einzelne Anfrage von einem Client erstellt, sodass Sie hier kundenbezogene Informationen speichern können. Wenn Sie diese Middleware nach der Pass-Middleware hinzufügen, erhalten Sie Zugriff auf Benutzereigenschaften, Sitzungen usw. wie in jedem Request-Handler. – k10der