Node.js项目中调用JavaScript的EJS模板库的方法
2016-03-11 17:50
846 查看
作为外部模块,调用的方法和mysql模块是相同的,不再赘述。
ejs的render函数有两个参数 第一个是字符串,第二个是可选的对象,和其他javascript模版一样需要渲染的数据也是包含在option对象中的
ejs.render(str,option); // 渲染字符串 str 一般是通过nodejs文件系统的readfile方法读取 ejs.render(str,{ data : user_data // 需要渲染的数据 });
当str字符串中没有包含 include 标签时,渲染数据是没有问题的,反之,就会报错。前面已经讲过我的项目文件和nodejs的安装文件不在同一个根目录下。解决这个问题需要配置option参数的filename属性。
查看ejs源码,会发现,ejs在处理include包含文件的路径时会用到一个resolveInclude函数:
function resolveInclude(name, filename) { var path = join(dirname(filename), name); var ext = extname(name); if (!ext) path += '.ejs'; return path; }
filename正是dirname函数的参数,作为nodejs核心模块的path.dirname(),返回的path总是相对nodejs的安装路径,如果不指定filename值,就会找不到文件
在使用dirname时应当注意,函数处理传入的路径参数时会截取第一个
'/' 之前的部分作为路径名例如:
path.dirname('/foo/bar/baz/asdf/quux') // returns '/foo/bar/baz/asdf'
要取得tpl目录可以这样写:
path.dirname('/tpl/..') // return /tpl
完整的render函数可以这样:
ejs.render(str,{ filename : path + '/tpl/..', //tpl文件中保存的是模版文件 data: user_data });
您可能感兴趣的文章:
相关文章推荐
- 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
- node+express+ejs制作简单页面上手指南
- Nodejs express框架一个工程中同时使用ejs模版和jade模版
- windows下使用Nodejs开发Express4.x
- ejs template call nodejs function
- Node.js学习(14)----EJS模板引擎
- windows8.1下的Node.js实战之web项目搭建(1)
- Express框架中如何引用ejs模板引擎
- Node.js学习(13)----ejs模板引擎
- ejs 模板中输出的两种方式
- nodejs开发指南中出现的问题以及解决汇总
- node下使用express框架,ejs模板引擎
- node.js之EJS
- 如何在 ejs 模板中使用 helper function 外部函数进行特殊处理?
- ejs 模板中 json 对象在 js 中的解析
- 前端视频教程
- Node.js EJS模板引擎
- webpack2打包vue与Boostrap并进行多页面打包以及公共js部分的提取
- Node 研究体会
- 【Node.js-4】jade介绍、include、传递数据、定义变量、for等高级用法、ejs