狼书(卷2):Node.js Web应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.6 切换视图模板引擎

MVC是默认的设计模式,大部分Web应用或者框架都会遵守,其中V(view)指的就是视图。对于Web应用来讲,视图就是浏览器渲染使用的HTML技术。不过HTML写起来非常麻烦,尤其是带有和数据库交互的动态页面,于是就出现了Server Page概念,即所谓的服务器端页面,比较典型的有ASP、JSP、PHP等。如果深究其原理,所有的服务器端页面其实都是模板引擎。

JavaScript的世界里有无数的模板引擎,甚至几十行代码就能实现一个模板引擎,所有的这些模板引擎都能在Node.js里使用,当然也就能在Koa框架里使用。出名的模板引擎有几十种,consolidate.js模块支持的模板引擎都是非常常用的。按照express-generator里的选型,视图默认使用的模板引擎仍然是Pug。如果想使用其他的视图,可以在命令行参数里进行指定。

目前koa-generator支持如下3种模板引擎。

○ Pug:无参数指定模板引擎的时候默认使用。

○ EJS:通过-e,--ejs来支持。

○ Nunjucks:通过-n,--nunjucks来支持。

koa-generator使用的是koa-views这个第三方Koa中间件模块,它支持所有consolidate.js支持的模板引擎。如果使用除以上3种模板引擎外的其他模板引擎,则需要修改3个地方,下面以React为例进行说明。

○ 安装对应的模板引擎模块:$npm install--save react。

○ 修改app.js里与koa-views相关的配置,将extension设置为react,代码如下。

○ 参考react组件的写法来修改views目录里的文件。