Maison > interface Web > js tutoriel > Méthode d'appel de la bibliothèque de modèles EJS de JavaScript dans Node.js project_node.js

Méthode d'appel de la bibliothèque de modèles EJS de JavaScript dans Node.js project_node.js

WBOY
Libérer: 2016-05-16 15:11:02
original
1482 Les gens l'ont consulté

En tant que module externe, la méthode d'appel est la même que celle du module mysql et ne sera pas décrite à nouveau.

La fonction de rendu d'ejs a deux paramètres. Le premier est une chaîne et le second est un objet facultatif. Comme les autres modèles JavaScript, les données qui doivent être rendues sont également incluses dans l'objet option

.
ejs.render(str,option); 
// 渲染字符串 str 一般是通过nodejs文件系统的readfile方法读取 
ejs.render(str,{ 
  data : user_data // 需要渲染的数据 
}); 
Copier après la connexion

Lorsque la chaîne str ne contient pas la balise include, il n'y a aucun problème avec le rendu des données. Sinon, une erreur sera signalée. Comme mentionné précédemment, mon fichier de projet et le fichier d'installation de nodejs ne se trouvent pas dans le même répertoire racine. Pour résoudre ce problème, vous devez configurer l'attribut filename du paramètre option.

En regardant le code source d'ejs, vous constaterez qu'ejs utilise une fonction solveInclude lors du traitement du chemin du fichier d'inclusion :

function resolveInclude(name, filename) { 
 var path = join(dirname(filename), name); 
 var ext = extname(name); 
 if (!ext) path += '.ejs'; 
 return path; 
} 
Copier après la connexion

filename est le paramètre de la fonction dirname. Comme path.dirname() du module principal nodejs, le chemin renvoyé est toujours relatif au chemin d'installation de nodejs. Si la valeur du nom de fichier n'est pas spécifiée, le fichier ne le sera pas. trouvé
Lorsque vous utilisez dirname, vous devez noter que le premier
sera intercepté lorsque la fonction traitera les paramètres du chemin entrant. La partie avant « / » est utilisée comme nom de chemin. Par exemple :

.
path.dirname('/foo/bar/baz/asdf/quux') 
// returns 
'/foo/bar/baz/asdf' 
Copier après la connexion

Pour récupérer le répertoire tpl, vous pouvez écrire comme ceci :

path.dirname('/tpl/..') // return /tpl 
Copier après la connexion

La fonction de rendu complète peut ressembler à ceci :

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

Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal