使用Webstorm创建nodejs express应用时,默认使用的是jade或者ejs模板,对于不习惯这两种模板语法的人来说确实不是很方便。没关系,这里我们使用art-template模板引擎,使用后可以直接使用html模板:
1、安装art-template
npm install art-template
2、修改app.js文件,添加如下代码:
// view engine setup app.set('views', path.join(__dirname, 'views')); var template = require('art-template'); template.config('base', ''); template.config('extname', '.html'); app.engine('.html', template.__express); app.set('view engine', 'html');
3、然后直接创建html页面,js路由便可以直接访问了
4、首先在app.js中添加如下路由拦截:
var routes = require('./routes/index'); ... app.use('/', routes);
然后是index.js文件:
var express = require('express'); var router = express.Router(); var tags = require('../modules/tag.js'); router.get('/', function(req, res, next) { res.render("index2",{title:"index2",content:"index2's content"}); }); module.exports = router;
这里我跳转到index2页面(配置好了art-template模板引擎后,视图层默认文件后缀即为html),index2.html页面如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{title}}</title> </head> <body> {{content}} </body> </html>
运行应用,浏览器输出如下:
nodejs中art-template模板语法冲突解决方案
art-template的github地址: https://github.com/aui/art-template
前端开发中,有非常多的模板引擎第三方框架,其中art-template属于写的比较好的一个,一般的模板引擎第三方都会支持一到两种模板语法,最常见的就是大胡子语法 {{ }} 和尖括号语法 <%= %>
本篇文章主要介绍一下在nodejs中,art-template如何解决模板引擎语法冲突
1.1-模板引擎语法冲突的场景
1.如果一个html文件中,既存在客户端渲染,也存在服务端渲染的话,那么这两种渲染的模板引擎语法不能一致,否则在加载时服务端渲染就已经将客户端的模板也一并渲染了
2.一般遇到这种情况,例如一个html文件中既有服务端渲染又有客户端渲染的情况下,服务端的模板引擎我们使用 {{ }} 语法,客户端渲染我们使用 <%= %>
3.在nodejs中,我们使用npm来安装art-template之后: npm install art-template ,默认情况下art-template是同时支持浏览器端与服务端的,并且他们之间的导入文件是不同的