由于公司一个seo项目,需要我协助。此项目他人已经开发大半,由于seo需要,使用了服务器端模板引擎。
我项目的后端同事说项目是go语音写的,跑项目麻烦,只给了我template和css等静态文件。

为了方便自己调试模板花了点时间用nodejs跑了一套。

装node就不说了,网上很多

mkdir appName
cd appName/
npm init
npm install express --save
npm install mustache --save
npm install mustache-express --save
//网上有的是用stache,不过看其注册模板引擎用的是app.register()应该是以前的了,我试了用不了后来找到了这个mustache-express

只是为了方便调试,目录结构比较随意

不废话,直接上代码,app.js:

var express = require('express');
var rf = require("fs");
var mustacheExpress = require('mustache-express');
var app = express();
app.use('/static', express.static('static'));//静态文件托管
app.engine("mustache", mustacheExpress());//npm 安装的mustache没有提供模板引擎,不注册模板引擎会报错Error: Module "mustache" does not provide a view engine.
app.set('views', './templates/zh-hans/');
app.set('view engine', 'mustache');
// app.register(".mustache", require('stache'));
//第一次找到的是上面这句代码,但api更换了报错。查看api文档现在 是app.engine
app.get('/', function(req, res) {
res.send('Hello World!');
});
app.get('/zh-hans', function(req, res) {
rf.readFile("./mock/index.js", 'utf-8', function(err, data) {//读取自己写的模拟数据
if (err) {
console.log("error");
} else {
data = JSON.parse(data);
data.LanguageDisplay = "zh-hans";
res.render('index', data);//把读取的数据填充进模板 }
});
}); var server = app.listen(3000, function() {
var host = server.address().address;
var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port);
});

然后

node app.js

现在http://localhost:3000/zh-hans/就可以访问了

是不是很简单

使用模板引擎的的代码就5句

var mustacheExpress = require('mustache-express');
app.engine("mustache", mustacheExpress());
app.set('views', './templates/zh-hans/');
app.set('view engine', 'mustache');
res.render('index', data);

nodejs+Express中使用mustache模板引擎的更多相关文章

  1. 【转】在Express项目中使用Handlebars模板引擎

    原文:http://fraserxu.me/2013/09/12/Using-Handlebarsjs-with-Expressjs/ 最近在用Expressjs做一个项目,前后端都用它来完成.自己之 ...

  2. 在express站点中使用ejs模板引擎

    在express站点中使用ejs模板引擎 文/玄魂 目录 在express站点中使用ejs模板引擎 前言 1.1         安装 1.2修改app.js 1.3创建测试页面 前言 使用 vs创建 ...

  3. nodejs+express中设置登录拦截器

    在nodejs+express中,采用nodejs后端路由控制用户登录后,为了加强前端的安全性控制,阻止用户通过在浏览器地址栏中输入地址访问后台接口,在app.js中需要加入拦截器进行拦截: /*** ...

  4. JS模板引擎-Mustache模板引擎使用实例1-表格树

    1 使用实例代码 1.jsp代码 <!DOCTYPE html> <html lang="zh-CN"> <head> <title> ...

  5. NodeJS中使用swig模板引擎

    NodeJS中的默认引擎是jade有点过于复杂,而且不是以HTML为基础的,学习成本和前端适应成本都很大.而ejs虽然简单,但不支持模板导入,而且效率一般. swig的语法简单,学习成本很低,符合常规 ...

  6. Express框架之Jade模板引擎使用

    日期:2018-7-8  十月梦想  node.js  浏览:2952次  评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...

  7. express-9 Handlebars模板引擎(2)

    视图和布局 视图通常表现为网站上的各个页面(它也可以表现为页面中AJAX局部加载的内容,或一封电子邮件,或页面上的任何东西).默认情况下,Express会在views子目录中查找视图.布局是一种特殊的 ...

  8. express-8 Handlebars模板引擎(1)

    简介 使用JavaScript生成一些HTML document.write('<h1>Please Don\'t Do This</h1>'); document.write ...

  9. Mustache模板引擎

    Mustache是一个Logic-Less模板引擎,即:零逻辑引擎,原因在于它只有标签,没有流程控制语句,这是它与其它模板引擎不同的地方. Mustache小巧玲珑,几乎用各种语言都实现了一遍. Mu ...

随机推荐

  1. 简单的权限管理php

    转发自https://www.cnblogs.com/shenzikun1314/p/6604867.html#4262295 首先,要明白的基础理论是用户,角色,权限之间的关系是一对多,还是多对多. ...

  2. ServerSocket类的常用方法

    1.accept:侦听并接受此套接字的连接:此方法在连接传入之前一直阻塞. 2.setSoTimeout(timeout)方法的作用时设置超时时间,通过指定超时timeout值启用/禁用超时功能,以m ...

  3. SVN异常,Previous operation has not finished; run 'cleanup' if it was interrupted

    SVN在提交.更新.cleanup时报错:Problem running logsvn: Failed to run the WC DB work queue associated with 'D:\ ...

  4. JS基础语法---String(字符串的案例)

    练习1: var str = "我的宝宝最可爱,声音嗲嗲的"; var key = "可爱"; //先获取要截取的字符串的索引位置 var index = st ...

  5. linux离线安装mysql5.7

    下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 上传到 / ...

  6. C++ 进阶笔记之一

    优化相关 使用灵活的.动态分配的数据,不要使用固定大小多数组: 优先使用线性算法或者尽可能快的算法: push_back 散列表查询:O(1) set/map lower_bound/upper_bo ...

  7. 初学Elasticsearch

    首先启动elasticsearch.bat,然后安装node.js为了支持elasticsearch-head-master插件,之后在在该插件的目录打开命令行窗口,输入grunt server即可S ...

  8. web攻击与防御技术--SQL注入

    sql注入是WEB安全中比较重要而复杂的一个东西.而且危害性比较大. 一般来讲SQL注入的话首先要识别注入点.一个是看能不能注入另外一个是看是什么类型的注入比如说字符,数字,搜索(?)等等 GET.P ...

  9. java之集合工具类Collections

    Collections类简介 java.utils.Collections 是集合工具类,用来对集合进行操作.此类完全由在 collection 上进行操作或返回 collection 的静态方法组成 ...

  10. [CodeForces - 1225D]Power Products 【数论】 【分解质因数】

    [CodeForces - 1225D]Power Products [数论] [分解质因数] 标签:题解 codeforces题解 数论 题目描述 Time limit 2000 ms Memory ...