Heim > Web-Frontend > js-Tutorial > Methode zum Aufrufen der EJS-Vorlagenbibliothek von JavaScript in Node.js project_node.js

Methode zum Aufrufen der EJS-Vorlagenbibliothek von JavaScript in Node.js project_node.js

WBOY
Freigeben: 2016-05-16 15:11:02
Original
1480 Leute haben es durchsucht

Als externes Modul ist die Aufrufmethode dieselbe wie die des MySQL-Moduls und wird nicht noch einmal beschrieben.

Die Renderfunktion von ejs hat zwei Parameter. Der erste ist ein String und der zweite ist ein optionales Objekt. Wie bei anderen JavaScript-Vorlagen sind auch die Daten, die gerendert werden müssen, im Optionsobjekt enthalten

ejs.render(str,option); 
// 渲染字符串 str 一般是通过nodejs文件系统的readfile方法读取 
ejs.render(str,{ 
  data : user_data // 需要渲染的数据 
}); 
Nach dem Login kopieren
Wenn die Zeichenfolge str das Include-Tag nicht enthält, gibt es kein Problem beim Rendern der Daten. Andernfalls wird ein Fehler gemeldet. Wie bereits erwähnt, befinden sich meine Projektdatei und die NodeJS-Installationsdatei nicht im selben Stammverzeichnis. Um dieses Problem zu lösen, müssen Sie das Dateinamenattribut des Optionsparameters konfigurieren.

Wenn Sie sich den EJS-Quellcode ansehen, werden Sie feststellen, dass EJS bei der Verarbeitung des Pfads der Include-Datei eine ResolveInclude-Funktion verwendet:

function resolveInclude(name, filename) { 
 var path = join(dirname(filename), name); 
 var ext = extname(name); 
 if (!ext) path += '.ejs'; 
 return path; 
} 
Nach dem Login kopieren
Dateiname ist der Parameter der Funktion dirname() des NodeJS-Kernmoduls. Der zurückgegebene Pfad ist immer relativ zum NodeJS-Installationspfad. Wenn der Dateiname-Wert nicht angegeben ist, wird die Datei nicht angegeben gefunden

Bei der Verwendung von dirname sollten Sie beachten, dass das erste
abgefangen wird, wenn die Funktion die eingehenden Pfadparameter verarbeitet. Als Pfadname wird der Teil vor „/“ verwendet. Beispiel:

path.dirname('/foo/bar/baz/asdf/quux') 
// returns 
'/foo/bar/baz/asdf' 
Nach dem Login kopieren
Um das tpl-Verzeichnis zu erhalten, können Sie so schreiben:

path.dirname('/tpl/..') // return /tpl 
Nach dem Login kopieren
Die vollständige Renderfunktion kann wie folgt aussehen:

ejs.render(str,{ 
  filename : path + '/tpl/..', //tpl文件中保存的是模版文件 
  data: user_data 
}); 

Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage