2016-11-08 5 views
0

Ich übe mit einfachen .get-Methoden in Node/Express. Ich folge einem Beispiel für ein Buch, aber ich habe keine Sitzungsvariable und ich habe keine Vorlagen; also habe ich diese Zeilen kommentiert und sie durch eine einfache .send-Methode ersetzt, und ich habe sie durch eine einfache Hardcode-Variable ersetzt: autorisiert.Knoten Express: Mock Autorisieren Funktion in app.get

Ich erhalte die Fehlermeldung: ReferenceError: res is not defined

Das Problem ist, dass ich keine res variabel, da die Steuerung zuerst auf authorise Funktion übergeben.

function authorize(req, res, next){ 
    authorized = true; 
    // if(req.session.authorized) return next(); 
    if(authorized) return next(); 
    res.send('not-authorized'); 
} 
app.get('/secret', authorize, function(){ 
    // res.render('secret'); 
    res.send('secret'); 
}); 
app.get('/sub-rosa', authorize, function(){ 
    // res.render('sub-rosa'); 
    res.send('sub-rosa'); 
}); 
+2

Sie wahrscheinlich brauchen 'Funktion (req, res) {' statt 'function() {' in beiden Fällen. –

+0

danke es funktioniert, aber wie viele Funktionen (req, res) kann ich nach dem Pfad hinzufügen? Ich habe die Dokumentation für app.get, die Express- oder Knotensyntax nicht gefunden. – stackdave

+0

@stackdave Sie können beliebig viele hinzufügen. 'app.get ('/ mein/pfad', handler1, handler2, handlerArray, funktion (req, res, next) {next()}, funktion (req, res) {})'. Stellen Sie nur sicher, dass alle Handler 3 Parameter haben - '(req, res, next)', mit Ausnahme des letzten, der 'next' nicht benötigt. – hlfrmn

Antwort

0

dank Kommentare, die Lösung ist:

function authorize(req, res, next){ 
    authorized = true; 
    // if(req.session.authorized) return next(); 
    if(authorized) return next(); 
    res.send('not-authorized'); 
} 
app.get('/secret', authorize, function(req, res){ 
    // res.render('secret'); 
    res.send('secret'); 
}); 
app.get('/sub-rosa', authorize, function(req, res){ 
    // res.render('sub-rosa'); 
    res.send('sub-rosa'); 
}); 
Verwandte Themen