Node.js项目中调用JavaScript的EJS模板库的方法

 更新时间:2016年03月11日 17:50:49   作者:zxsrendong  
这篇文章主要介绍了Node.js项目中调用JavaScript的EJS模板库的方法,通过EJS模板引擎可以制作出维护性良好的HTML代码结构,需要的朋友可以参考下

作为外部模块,调用的方法和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中Swagger的使用指南详解

    Node.js中Swagger的使用指南详解

    Swagger(目前用OpenAPI Specification代替)是一个用于设计、构建、记录和使用REST API的强大工具,本文将探讨使用Swagger的一些关键技巧,需要的可以参考一下
    2024-01-01
  • node将geojson转shp返回给前端的实现方法

    node将geojson转shp返回给前端的实现方法

    这篇文章主要介绍了node将geojson转shp返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 10个Node.js库帮助你优化代码和简化开发

    10个Node.js库帮助你优化代码和简化开发

    这篇文章主要介绍了10个Node.js库帮助你优化代码和简化开发,其中包括处理数组、对象、字符串库Lodash,缓存数据处理库Node-cache,解析、操作和格式化日期和时间库Moment.js,Redis操作库,发送电子邮件库Nodemailer
    2023-05-05
  • 浅析Nodejs npm常用命令

    浅析Nodejs npm常用命令

    这篇文章主要介绍了浅析Nodejs npm常用命令的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • node版本切换与版本升级降级教程(win)

    node版本切换与版本升级降级教程(win)

    nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看,下面这篇文章主要给大家介绍了关于node版本切换与版本升级降级教程的相关资料,需要的朋友可以参考下
    2022-11-11
  • angularJS 如何读写缓冲的方法(推荐)

    angularJS 如何读写缓冲的方法(推荐)

    angularJS 如何读写缓冲?下面小编就为大家带来一篇angularJS 读写缓冲的方法(推荐)。希望对大家有所帮助。一起跟随小编过来看看吧
    2016-08-08
  • NODE.JS加密模块CRYPTO常用方法介绍

    NODE.JS加密模块CRYPTO常用方法介绍

    这篇文章主要介绍了NODE.JS加密模块CRYPTO常用方法介绍,需要的朋友可以参考下
    2014-06-06
  • 浅谈Node异步编程的机制

    浅谈Node异步编程的机制

    本篇文章主要介绍了浅谈Node异步编程的机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Node.js中的require.resolve方法使用简介

    Node.js中的require.resolve方法使用简介

    在Node.js中,可以使用require.resolve函数来查询某个模块文件的带有完整绝对路径的文件名,下面这篇文章主要介绍了Node.js中require.resolve方法使用的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • 详解如何实现自由切换Node.js版本

    详解如何实现自由切换Node.js版本

    作为开发者,我们经常在不同的项目中需要使用不同版本的 Node.js,有时旧项目需要旧版本,而新项目则可能依赖最新的 Node.js 版本,本文将介绍几种常用的方法来自由切换 Node.js 版本,需要的朋友可以参考下
    2024-10-10

最新评论