由于express升级到3.0,造成这本书看起来more and more蛋疼。记录少许坑儿,方便后来人。

一、node.js在windows下的安装

书中在两处介绍了两种方式,其实现在的node.js在windows下只需要下载一个.msi文件安装就可以,那个什么python支持可以浮云了。

二、express中使用ejs创建工作目录

1、书中给出的 express -t ejs projName 参数-t在3.0中已经改为-e。

默认安装的为jade而不是ejs,所以创建出来的目录结构会不一样

2、创建成功的ejs目录结构中views文件夹中无layout.ejs文件,即使手动创建express也不会自动去套用。

这是因为express3.0已经不支持layout.ejs

3、片段视图中的<%- partial('XX',ejsName) %>无效,提示partial未定义

这是因为express3.0已不支持,可通过如下方法解决

在package.json里面的dependencies添加"express-partials": "*"
然后运行cmd并切换至项目目录运行npm install获得最新版。
app.js里面引用express-partials:
1 添加引用var partials = require('express-partials');
2 在app.set('view engine', 'ejs');下面添加app.use(partials()); 来源:http://cnodejs.org/topic/50c1a0ed637ffa4155d05256

三、其他

书中很多内容由于express升级到3.0导致不可用,需要调整用法,具体参见express3.0的API。

更多关于express2.0 to express3.0的差异请参考http://jser.me/2012/12/10/Express2.X%E8%BF%81%E7%A7%BB%E8%87%B33.X%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9.html

书看到创建网站实例的时候就已经蛋疼的看不下去了,断断续续看了好久,发现技术还是与时俱进看网上文档的好。

另外关于本书案例后面几章概念性的介绍,如果之前你对node.js一点了解都没有,或者这本书已经成为了你的第一本书,书中的工程代码看一看理解一下,顺序看一看后续章节对原理的理解还是有很大好处的,并且最爱的一个话题为“node.js不是银弹”,任何技术都有弊端,了解node.js的缺点才能更好的使用它。

All in all,根据查询各种人的建议资料得出以下结论:

1、模板还是改用jade吧,ejs实在是不太有爱!

2、express升级到3.0给人造成了很多困扰,理解了大概原理绕过入门成就感还是摆脱express为上策,也方便对node.js的深入理解。

3、虽然今年应届生郭家宝很火,这本书仍旧不推荐,技术变更略快。

《Node.js开发指南》的少许坑儿~的更多相关文章

  1. 学习Nodejs:《Node.js开发指南》微博项目express2迁移至express4过程中填的坑

    <Node.js开发指南>项目地址https://github.com/BYVoid/microblog好不容易找到的基础版教程,但书中是基于express2的,而现在用的是express ...

  2. Node.js开发指南中的例子(mysql版)

    工作原因需要用到nodejs,于是找到了<node.js开发指南>这本书来看看,作者BYVoid 为清华大学计算机系的高材生,年纪竟比我还小一两岁,中华地广物博真是人才辈出,佩服. 言归正 ...

  3. 《node.js开发指南》partial is not defined的解决方案

    由于ejs的升级,<node.js开发指南>中使用的 partial 函数已经摒弃,使用foreach,include代替 原来的代码是: <%- partial('listitem ...

  4. NODE.JS开发指南学习笔记

    1.Node.js是什么 Node.js是一个让JS运行在服务器端的开发平台,它可以作为服务器向用户提供服务.Node.js中的javascript只是Core javascript,或者说是ECMA ...

  5. 《node.js开发指南》读书笔记(一)

    在开发时如果修改了js内容,不能通过刷新浏览器直接看到效果,必须通过重启nodejs程序才能看到,这样显然不利于开发调试,supervisor可以实现这个功能,监视对代码的改动,并自动重启nodejs ...

  6. 《Node.js开发指南》知识整理

    Node.js简介 Node是一个可以让JavaScript运行在服务器端的平台,抛弃了传统平台依靠多线程来实现高并发的设计思路,而采用单线程.异步式I/O.事件驱动式的程序设计模型. 安装和配置No ...

  7. Node.js 开发指南笔记

    第一章:node简介 介绍了node是什么:node.js是一个让javascript运行在服务器端的开发平台, node能做些什么:[书上的] 具有复杂逻辑的网站 基于社交网络的大规模Web应用 W ...

  8. Node.js 开发指南

    1.Node.js 简介 Node.js 其实就是借助谷歌的 V8 引擎,将桌面端的 js 带到了服务器端,它的出现我将其归结为两点: V8 引擎的出色: js 异步 io 与事件驱动给服务器带来极高 ...

  9. node.js开发指南读书笔记(1)

    3.1 开始使用Node.js编程 3.1.1 Hello World 将以下源代码保存到helloworld.js文件中 console.log('Hello World!'); console.l ...

随机推荐

  1. android-Intent and IntentFilter

    一.Intent简介 Android使用Intent来封装程序的调用"意图",Activity.Service.BroadcastReceiver三种重要的组件都是依靠Intent ...

  2. 使用Apache Bench进行压力测试

    Apache Bench是Apache中自带的压力测试工具 在linux中我们安装好apache后可以通过ab指令使用它 格式:ab [参数] [http://]ip地址/path/ 常用参数说明: ...

  3. HDU1568

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. 关于 QRCode 的问题[C# 生成二维码固定大小]

    一直在纠结了一天多的问题:就是为什么生成的二维码会随着内容多少的变化而变化大小,但是为什么网上做出来的二维码内容变化但是大小却没有变化?刚开始的时候我就一直围绕着是不是根据缩略图来做的,但是这个方法行 ...

  5. Lua迭代器和泛型for

    1.迭代器与closure 在lua中,迭代器通常为函数,每调用一次函数,会返回集合中的下一个元素.每个迭代器在成功调用的时候,都需要保存一些状态,closure(闭包)完美为迭代器运用而生. fun ...

  6. smarty 入门2(个人总结)

    1.下载安装: 2.拷贝libs文件夹到web文件夹: 3.引入smarty类文件   // include './libs/Smarty.class.php'; 4.配置smarty      // ...

  7. Web前端开发基础 第四课(CSS小技巧)

    水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...

  8. IOS第八天(3:UITableViewController团购, 点击底部代码调整)

    ****代理者的方法中 // 通知页脚视图调整视图显示状态 [footerView endRefresh]; //发送代理通知的类中 /** 视图控制器刷新完成调用方法 */ - (void)endR ...

  9. geometric median

    The geometric median of a discrete set of sample points in a Euclidean space is the point minimizing ...

  10. jwt refresh token

    $app->post('auth/refresh-token', ['middleware' => 'jwt.refresh', function() { try { $old_token ...