我在看《nodejs开发指南》,有迷惑。express如何默认生成ejs的网站结构,我按书上的打,获得的还是jade.还有第100页,出现"partial is not defined"求帮助。
发布于 12 年前 作者 uoryon 16249 次浏览 最后一次编辑是 8 年前
28 回复

本群有本书的作者。

express -e 项目名称

我想问下,在那个地方输入express -e 项目名称,我在cmd上一输入就报出不是命令或应用

npm install -g express 全部命令

   首先创建一个 microblog 文件夹
    然后 打开 命令CMD  进入 microblog这个文件夹
    npm install express  注意这里一定要在 microblog文件夹下运行
    npm install jade
    npm install  ejs
    express -e ejs  microblog
    搞定。。。。。初学者有错请说

没有生成 layout.ejs,自己手动添加一个,默认页面index.ejs居然没有使用layout.ejs

作者写的时候还是express 2.0 现在已经3.0了 很多都变了 不过大体思路是一致的

layout在3.0中取消了需要安装个express-partial的东西,准备

你可以看一下那个package.json包,里面默认是jade,修改以下

这个很easy ,使用webstorm 建个新的project 。一下子就ok了。

+1 修改够npm install

搭车同问。 我最近也在看这本书,有个问题。 模板引擎用的也是ejs,但是为什么不会去引用layout.ejs. 在route下的index.js 中,指定了也不会引用了,也没去加载?

<p>这样输入也同样实现:</p>

npm install express -g
npm install ejs -g
express -e ejs microblog

我之前做的时候也遇到过,确实是nodejs版本的问题

都升级了,要跟上时代 用include代替layout吧

在express中使用ejs的模版引擎,但是不知道其中在什么地方调用了layout.html这个模版。3d打印

ejs要使用layout得引入express-ejs-layouts,可以去github上看看使用方法enter link description here

@72color 默认就是layout.ejs,你也可以在渲染的时候指定模板 比如在routes目录下index.js内

function(req, res){
    res.render('index', { title: 'express', layout:'newlayout' })
};

使用include: <ul> <% items.forEach(function(listitem){ %> <% include listitem %> <% }) %> </ul>

需要安装express-partials包 详细看这里http://cnodejs.org/topic/50c1a0ed637ffa4155d05256

在views下新建一个layout.ejs 文件

在app.js中进行配置 var partials = require(‘express-partials’ ); // 启用layout app.use(partials());

layout就启用了

我也在看这本书接触nodejs

这本书的微博例子,没有说创建mongodb的数据库创建?

哦,数据自动载入,但是运行例子还是报错。。。

我把ejs给换成twig了. 恩. 不想用华丽的语词来介绍. 反正自认为写出的模板就像面向对象一样, 还能继承呢. 自己去看吧. PHP 的 Symfony2的默认模板引擎就是它.

不仅是继承模板, 还能继承block

之前用的是jade, 发现不支持block 继承, 于是换了. 不过jade的写法真爽

回到顶部