Sebagai modul luaran, kaedah panggilan adalah sama seperti modul mysql dan tidak akan diterangkan lagi.
Fungsi pemaparan ejs mempunyai dua parameter Yang pertama ialah rentetan, dan yang kedua ialah objek pilihan Seperti templat JavaScript lain, data yang perlu diberikan juga disertakan dalam objek pilihan
ejs.render(str,option); // 渲染字符串 str 一般是通过nodejs文件系统的readfile方法读取 ejs.render(str,{ data : user_data // 需要渲染的数据 });
Apabila rentetan str tidak mengandungi teg sertakan, tiada masalah dengan memaparkan data Jika tidak, ralat akan dilaporkan. Seperti yang dinyatakan sebelum ini, fail projek saya dan fail pemasangan nodejs tidak berada dalam direktori akar yang sama. Untuk menyelesaikan masalah ini, anda perlu mengkonfigurasi atribut nama fail bagi parameter pilihan.
Melihat kod sumber ejs, anda akan mendapati bahawa ejs menggunakan fungsi resolveInclude semasa memproses laluan fail include:
function resolveInclude(name, filename) { var path = join(dirname(filename), name); var ext = extname(name); if (!ext) path += '.ejs'; return path; }
nama fail ialah parameter fungsi nama sebagai path.dirname() modul teras nodejs, laluan yang dikembalikan sentiasa relatif kepada laluan pemasangan nodejs Jika nilai nama fail tidak ditentukan, fail itu tidak akan ditemui
Apabila menggunakan diname, anda harus ambil perhatian bahawa
pertama akan dipintas apabila fungsi memproses parameter laluan masuk.
Bahagian sebelum '/' digunakan sebagai nama laluan Contohnya:
path.dirname('/foo/bar/baz/asdf/quux') // returns '/foo/bar/baz/asdf'
Untuk mendapatkan direktori tpl, anda boleh menulis seperti ini:
path.dirname('/tpl/..') // return /tpl
Fungsi render lengkap boleh jadi seperti ini:
ejs.render(str,{ filename : path + '/tpl/..', //tpl文件中保存的是模版文件 data: user_data });