OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

OnceIO(Node.JS)中安装、使用和更换doT、EJS、pug等模板引擎


分享到
分类 JS学习   关键字 JavaScript   发布 ourjs  1477634219696
注意 转载须保留原文链接,译文链接,作者译者等信息。  

OnceIOOnceDoc企业私有内容(文档)管理系统的底层Web框架,它可以实现模板文件、静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只压缩一次),拥有非常好的性能,为您节约服务器成本。它的模块化功能,可以让你的Web进行分布式存储,在一个扩展包里即可包含前端、后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展。目前OnceIO已经开源,这里是介绍如何使用的一系列文章。

 

安装模板引擎

由于 doT.js 模板引擎的整体性能较优,OnceIO 采用 doT.js 作为默认模板引擎。在使用任何一种除了 doT.js 之外的模板引擎之前都需要先用 cmd 在项目文件夹安装这种模板引擎。以使用 Git Bash 安装 EJS 为例,使用的命令是:

$ npm install ejs  

Git Bash 界面如下:

Git Bash

 

使用模板引擎

在项目文件夹中创建 websvr.js 文件,以使用 doT.js 模板引擎为例,websvr.js 的代码如下:

var onceio = require('../onceio/onceio')

var app = onceio({
    home   :  "./"
  , port   :  8054
  , listDir:  true
  , debug  :  false
})

app.get('/dot', function(req, res) {
  res.render('dot.tmpl', {
    username: 'Kris'
  })
})  

创建好服务器文件后,再在项目文件夹中创建一个模板文件 dot.tmpl,代码如下:

<!DOCTYPE html>
<body>
  <h1> Hello, {{=it.username}} </h1>
</body>
</html>  

运行服务器,在浏览器中打开 localhost:8054/dot,得到以下结果:

可以注意到,这个网页和的内容是由前端文件和后端文件共同决定的,这就是使用了模板引擎的结果。

 

更换模板引擎

OnceIO 支持所有 Node.js 模板引擎,您可以根据自己的需要或喜好更换模板引擎。

例如,当您想使用 EJS 模板引擎时,可在项目文件夹中安装 EJS 后将 websvr.js 中的 app.get 函数替换成:

app.engine('ejs', require('ejs').render)

app.get('example_ejs', function(req, res) {
  res.render('example_ejs.ejs', {
      username: 'Kris'
  })
})

OnceIO 的模板引擎接口与 Express 有一些不同:在使用 EJS 或 pug 时,Express 中 require 函数的第一个参数为模板文件路径,而 OnceIO 中则为模析文件内容,几乎所有的模板引擎文件都提供直接渲染内容的接口,比如: require('pug').render  或  require('ejs').render

// Comparison between Express and OnceIO when using EJS
require('ejs').__express(path, option)
require('ejs').render(content, option)

//Comparison between Express and OnceIO when using pug
require('pug').__express(path, option)
require('pug').render(content, option)

模板文件 example_ejs.ejs 的代码为:

<!DOCTYPE html>
<body>
  <h1> Hello, <%= username %> </h1>
</body>
</html>

当您想使用 pug 模板引擎时,可在项目文件夹中安装 pug 后将 websvr.js 中的 app.get() 部分替换成:

app.engine('pug', require('pug').render);

app.get('/example_pug', function(req, res) {
  res.render('example_pug.pug', {
      username: 'Kris'
    , youAreUsingPug: true
  })
})

模板文件 example_pug.pug 的代码为:

doctype html
html
  body
    h1 Hello, #{username}

 

OnceIO地址:  https://github.com/OnceDoc/onceio

上一篇: OnceIO(Node.JS)中的模板引擎是什么及MVC设计模式的使用与实现

原文地址: 点此
社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 阿里任性Hr开除月饼极客:这样冰冷的公司没什么值得我留恋
  2. GitHub2016报告AngularJS流行度下降,JavaScript活跃度为Java两倍
  3. 在 2016 年学 JavaScript 是一种什么样的体验?
  4. 2016年收入最高的5个编程语言,JavaScript最流行,Java和C没在前5
  5. 传言GITHUB正在寻求第二轮融资,或面临估值下降、清算或被微软收购
  6. JavaScript函数式编程(一、二、三)
  7. Java 之父求职被嫌年纪大,硅谷公司现在喜欢“小鲜肉”,不爱“老古董”
  8. NodeJS中的Middleware是什么?在OnceIO中创建和使用中间件
  9. 用OnceIO(NodeJS)搭建简单的web服务器
  10. OnceIO(Node.JS)中的模板引擎是什么及MVC设计模式的使用与实现
  11. AirJD-简单好用的免费建站工具

 相关阅读 - JS学习
  1. OnceIO(Node.JS)中的模板引擎是什么及MVC设计模式的使用与实现
  2. NodeJS中的Middleware是什么?在OnceIO中创建和使用中间件
  3. 用OnceIO(NodeJS)搭建简单的web服务器
  4. JavaScript函数式编程(一、二、三)
  5. JavaScript在物联网中的应用
  6. 如何编写 jQuery 插件
  7. NodeJS中npm3相对于npm2模块依赖目录层欠的改进
  8. JavaScript的 Event Loop 模型
  9. You Don't Need jQuery
  10. Node.js单元测试、集成测试、基准测试以及代码覆盖率测试方面总结

 关键字 - JavaScript
  1. 如何用CSS将select/option文本居中或居右对齐
  2. 40行JavaScript代码实现的3D旋转魔方动画效果
  3. 使用Javascript将相对路径地址转换为绝对路径
  4. 给checkbox选择框设置不选中时的值
  5. 用原生HTML5控件实现输入框自动提示(下拉列表补全)功能
  6. JavaScript中怪异的地方
  7. 在JavaScript中创建命名空间的几种写法
  8. JavaScript中的继承,构造函数以及new关键字的作用
  9. 纽约时报使用Html5 WebRTC记录访问者IP地址
  10. 正则中test、exec、match的简单区别,以及括号的用法

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号