2012-04-05 4 views
1

Ich versuche, einen DynamicHelper in Express.js zu erstellen. Ist es möglich, innerhalb von dynamicHelper auf die in res.render gesetzten Variablen zuzugreifen? Insbesondere möchte ich auf die Variable 'title' zugreifen können. Die einzige Option, die ich mir vorstellen konnte, war, die Daten, die ich haben wollte, entweder an das req- oder res-Objekt anzuhängen und auf diese Weise innerhalb von dynamicHelper darauf zuzugreifen. Wie auch immer, ich habe mich gefragt, ob es auf andere Weise bereits zugänglich war?Zugriff auf Variablen, die in res.render() innerhalb einer dynamischen Hilfsfunktion in Express.js definiert sind?

Der folgende Code zeigt die aktuelle Struktur von res.render(). Da die Variable 'title' auf den Ergebnissen eines Datenbankaufrufs aufbaut, könnte man auch die Frage stellen, wie man auf die Ergebnisse der Datenbankabfrage von einem dynamicHelper aus zugreifen kann.

exports.viewContact = function(req, res) { 
    var id = req.params.id; 
    // Get document from DB. 
    var Contact = mongoose.model('Contact'); 
    Contact.findOne({ _id: id}, function(err, results) { 
    var breadcrumb = theme.breadcrumb({ path: url.parse(req.url).path, title: results.surname + ', ' + results.given_name }); 
    res.render('viewContact', { 
     locals: { 
     title: results.surname + ', ' + results.given_name, 
     surname: results.surname, 
     givenName: results.given_name, 
     org: results.org, 
     phones: results.phone, 
     emails: results.email, 
     addresses: results.address, 
     breadcrumb: breadcrumb 
     } 
    }); 
    }); 
}; 

Antwort

0

Nein, es ist nicht möglich, in anderen Funktionen auf lokale Variablen zuzugreifen.

+0

Danke für die schnelle Antwort. Ich habe meine Frage umformuliert, weil ich befürchte, dass sie Verwirrung stiften könnte. In meiner Frage beziehe ich mich nicht auf "lokale Variablen" im Sinne einer Programmierung, sondern eher auf Variablen, die an das Objekt 'local' angehängt sind, das an res.render() übergeben wird. – Benjen

Verwandte Themen