1.Node.js学习技术栈
nodejs是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣
推荐技术栈
- express 4.x (express最新版本,初学者先别去碰koa)
- mongoose(mongodb)
- bluebird(Promise/A+实现)
- jade(视图层模板)
- mocha(测试)
- node-inspector(调试)
https://github.com/i5ting/express-starter
了解http协议,尤其是表单和ajax传值,在req里如何接收
- 绝对地址和相对地址
- querystring
- url 和 uri
- http status code
- http verbs
- req取参数的3种方法
- 3种不同类型的post
- 命令行玩法
- supertest用法
- what is rest?
http://i5ting.github.io/node-http/
了解db相关操作,先以mongoose为主
- crud(增删改查)
- 了解分页
- 了解关系(1对1,1对多)在mongoose里如何实现
- 了解statics方法和methods的区别
- 了解pre和post的差别
- 了解mongoose的插件机制
- 了解mvc里m的作用,以及什么样的代码该放到模型里
- 了解索引优化
- 了解mongodb的部署
了解Promise/A+规范,合理规避回调陷阱
- 了解的node的异步
- 了解异步的恶心
- 了解异步基本场景,比如waterfall这样的路程使用async如何处理
- 了解q和bluebird用法(如果有angularjs经验,推荐q,其他只推荐bluebird)
- 了解bluebird的promisifyAll用法
- 了解如何重构流程,以及代码的可读性
使用tdd/bdd测试,最小化问题
测试的好处,这里就不说了,但是有一点是要说的,node的调试比较难,往往不如写测试来的快,推荐学习一下
- 理解最小问题思想,培养程序员该有的强大的内心
- mocha的基本用法
- 理解assert/should/expect等断言的用法
- 理解测试生命周期
- 理解done回调
- 理解如何模拟数据
- 理解http下的supertest测试
- 理解测试覆盖率
- 理解基于gulp自动化测试方法
如果有兴趣,可以去了解更多bdd/tdd内容,甚至是cucumber.js
你无论如何都要会的:调试
调试有3种方法
- node debug(太挫了,如果不是c,了解adb之类的人不推荐用)
- node-inspector(推荐4※)
- tdd/bdd(推荐5※)
2.Node.js中文资料导航
Node.js
- HomePage
- Infoq深入浅出Node.js系列(进阶必读)
- Io.js中文文档
- Node.js中文文档
- Node入门
- 被误解的 Node.js
- Node.js C++ addon编写实战系列
- 热门node.js模块排行榜,方便找出你想要的模块
- nodejs多线程,真正的非阻塞
- 浅析nodejs的buffer类
- 利用libuv编写异步多线程的addon实例
- Node.js中exports与module.exports的区别
- Node.js http 管道拒绝服务漏洞
- Node.js高级编程
- Node.js代码风格指南
- 七天学会NodeJS
- 前端快速掌握 nodejs+mongodb+express+jade
业界新闻
- NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
- 看eBay如何评价他们的Node.js首次尝鲜
- 程序员如何说服老板采用Node.js?
- 百万级并发 Node.js也能行
- 高性能Node.js:来自LinkedIn Mobile的10条优化建议
- Kraken:改变PayPal开发文化的Node.js框架
- Groupon抛弃Rails,转向Node.js
- PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
经验分享
- SDCC讲师专访:淘宝朴灵谈Node.js
- Node.js的核心与红利
- QCon北京2013 Node.js专题出品人朴灵专访
- 一个周末掌握IT前沿技术之node.js篇
- 用node+express搭建多人博客教程系列
- Node.js静态文件服务器实战
- 人人和微博登录模块的实现
- 《京JS》会议 & V8上的JS优化
- 沪 JS 国内讲师的 PPT 收集
- 给Node.js新手的7条小建议
模块导航
web服务器框架
最流行的web框架Express
- HomePage
- 加装涡轮,提速expressjs
- 给 connect 的 static 模块加上url路径前缀
- 研究nodeclub 登陆验证逻辑的一些心得
- Express.js 中文入门指引手册
- Connect架构初探 for 新手
- 使用 Express + Socket.IO 搭建多人聊天室
国人开源web框架rrestjs
实时应用web框架meteor
基于Express的实时MVC框架Sails
Koa,下一代 Node.js web 框架
- HomePage
- koa-guide
- koa-middlewares koa常用中间件集合