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


发布人 Kris  发布时间 1477534323521
关键字 Node.JS  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

 

 





回复 (0)
  • #
 近期最热
  1. OnceVI前后端分离的数据可视化报表工具简介
  2. OnceIO(Node.JS)中的模板引擎是什么及MVC设计模式的使用与实现
  3. OnceIO(Node.js)模块拦截与注入:模板文件路由重定向与Model数据改写
  4. OnceIO(Node.JS)的网页(模板)的引用与深层嵌套
  5. OnceIO(Node.JS)模块开发:模块注册、模块路由、静态文件重定向以及如何开发与设计一个功能扩展模块
  6. 传言Github正在寻求第二轮融资,或面临估值下降、清算或被微软收购
  7. 如何搭建个人SASS云盘:30秒快速安装OnceDoc企业私有网盘
  8. 在OnceIO(Node.JS)中用Redis储存Session
  9. 用OnceIO(NodeJS)搭建简单的web服务器
  10. NodeJS教程:基于OnceIO框架实现文件上传和验证
  11. NodeJS中的Middleware是什么?在OnceIO中创建和使用中间件

 相关文章
  1. OnceDB-支持全文搜索和关系查询的Redis内存数据库:驱动安装及使用教程
  2. 在OnceIO(Node.JS)中用Redis储存Session
  3. OnceIO(Node.js)模块拦截与注入:模板文件路由重定向与Model数据改写
  4. OnceIO(Node.JS)模块开发:模块注册、模块路由、静态文件重定向以及如何开发与设计一个功能扩展模块
  5. NodeJS教程:基于OnceIO框架实现文件上传和验证
  6. OnceIO(Node.JS)服务器端Cookie设置、添加、删除、显示及其实现原理
  7. 在OnceDoc(NODE.JS)环境下使用HTML和OnceDB(redis)构造表单并存储用户提交的信息
  8. OnceIO(Node.JS)的网页(模板)的引用与深层嵌套
  9. NodeJS中的客户端缓存、浏览器缓存、304缓存和OnceIO的缓存控制
  10. OnceIO(Node.JS)的静态文件路由(app.static)

 关键字
Node.JS OnceIO 模板引擎

 关注
关注
OnceOA

OnceOA