作为外部模块,调用的方法和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项目中调用JavaScript的EJS模板库的方法的更多相关文章

  1. node+express+ejs制作简单页面上手指南

    本文记录了使用node+express+ejs制作简单页面的全过程,话说express+ejs真的是太难了,有种蛋蛋的忧伤~

  2. node.js报错:Cannot find module 'ejs'的解决办法

    最近发现了node.js居然报错了,错误提示为:Cannot find module 'ejs',后来找了找资料发现解决的方法其实很简单,下面通过这篇文章来一起看看吧,希望对同样遇到这个问题的朋友们能有所帮助。

  3. Node.js的路由、EJS模板引擎、GET和POST请求讲解

    这篇文章介绍了Node.js的路由、EJS模板引擎、GET和POST请求,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  4. node+express+ejs使用模版引擎做的一个示例demo

    本篇文章主要介绍了node+express+ejs使用模版引擎做的一个示例demo,具有一定参考价值,有兴趣的小伙伴可以了解一下

  5. Nodejs+express+ejs简单使用实例代码

    本篇文章主要介绍了Nodejs+express+ejs简单使用实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. 零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门

    这篇文章主要介绍了零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门,本文在windows8系统下完成本教程,其它系统也可参考,需要的朋友可以参考下

  7. Node.js的Web模板引擎ejs的入门使用教程

    ejs是Node世界的开源模板引擎中比较有人气的一个,而且并不只是在Express框架中才可以使用,今天为大家带来Node.js的Web模板引擎ejs的入门学习教程,其中侧重于ejs的layout页面布局放面

  8. 详解node+express+ejs+bootstrap构建项目

    本篇文章主要介绍了详解node+express+ejs+bootstrap构建项目,非常具有实用价值,需要的朋友可以参考下

  9. koa2使用ejs和nunjucks作为模板引擎的使用

    这篇文章主要介绍了koa2使用ejs和nunjucks作为模板引擎的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Nodejs express框架一个工程中同时使用ejs模版和jade模版

    这篇文章主要介绍了Nodejs express框架一个工程中同时使用ejs模版和jade模版 的相关资料,需要的朋友可以参考下

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部