如果你也在看Node.js开发指南,如果你也在一步一步实现 microBlog 项目!也许你会遇到本文提到的问题,如果你用的是Express
3.0
本书实例背景是 Express 2.0 而如今升级到 3.0后去掉了一些老的方法也更新了一些新的,所以变化还是蛮大的.
首先上一篇博客提到的一个问题:
如何用Express 3.0 生成一个 ejs 模板项目
前提是你已经下载了ejs包,如何下载,运行cmd 输入 npm install ejs -g
2.0 下的语法是:express -t ejs microblog
3.0下的语法是:express -e ejs microblog (-t已经失效,取而代之的是 -e ,而3.0默认生成的是 jade
模板,此模板作者正是Express作者)
如何用Express 3.0 使用片段视图
就像asp.net里面的用户自定义控件,可以代码重用,相同的视图片段可以直接调用
2.0下的语法是:ejs模板文件里直接这样写 <ul><%- partial(‘listitem’,items)
%></ul> partial()
正是调用片段视图函数,接受2个参数,参数一表示模板名,参数二表示出入的对象数据.
3.0下使用相对麻烦点:
此方法在3.0下独立成了一个Express 的插件,所以要提前下载
(1)运行cmd 输入:npm install express-partials -g
(2)下载成功后.在app.js 中引用此插件 var partials =
require(‘express-partials’);
(3)然后再开启此插件, 在app.js 中 app.set(‘view engine’, ‘ejs’); 代码后添加如下代码:
app.use(partials());
(4)package.json 里 dependencies 配置项添加 ”express-partials”: “*”
注意格式,下面列出 package.json 全部内容
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
你可以直接复制上面的内容覆盖 package.json元内容
截止到此处你的Express 3.0下就可以使用 partial 片段视图了.
在view模板文件夹下新建 list.ejs 文件,内容是: <ul><%- partial(‘listitem’,items)
%></ul> 和 listitem.ejs 内容是:<li><%= listitem
%></li>
然后app.js 里添加一个路由来运行 list 模板创建的html页面.
添加路由控制如下:
1 2 3 4 5 |
|
保存,运行 app.js ,请求路径:localhost:3000/list