Rumah > hujung hadapan web > tutorial js > Kaedah memanggil perpustakaan templat EJS JavaScript dalam Node.js project_node.js

Kaedah memanggil perpustakaan templat EJS JavaScript dalam Node.js project_node.js

WBOY
Lepaskan: 2016-05-16 15:11:02
asal
1481 orang telah melayarinya

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 // 需要渲染的数据 
}); 
Salin selepas log masuk

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; 
} 
Salin selepas log masuk

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' 
Salin selepas log masuk

Untuk mendapatkan direktori tpl, anda boleh menulis seperti ini:

path.dirname('/tpl/..') // return /tpl 
Salin selepas log masuk

Fungsi render lengkap boleh jadi seperti ini:

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

Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan