精品 Node.js最新Web技术栈(2015年5月)
 发布于 10 年前  作者 i5ting  38905 次预览  最后一次回复是 9 年前  来自 分享 

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※)

更多内容和视频见

https://cnodejs.org/topic/5463f6e872f405c829029f7e

欢迎关注我的公众号【node全栈】

node全栈.png

93 回复
i5ting

这是写给初学者的,大牛勿喷

SoaringTiger

其实我觉得如果是从 tornado 转过来的,直接碰Koa 正好合适(我就是)

alsotang

帮你改了个题目,如果不合适的话,你再改回来吧。。

jsanswer1

……刚在 V2 上已经看到

i5ting

@alsotang 你改的名字会火的,tks

joney-pinkman

因为es6马上就要正式公布了,感觉es6会对以前js写法造成很大冲击,咱还是继续啃语法吧,工具什么的还是需要时再补

Pana

@joney-pinkman 话说 ES6 6 月能发布么

joney-pinkman

@Pana 应该会的,不管有没有跳票,这都是趋势啊,es6会给js注入新的生命力

dean5277

很不错的内容

iwhys

很不错 学习啦

mBigFlower

MARK! 求问:

了解pre和post的差别 是mongodb的什么东西?

likunpeng

这文章真心不错呢

i5ting

小心ueditor和multer冲突问题,注意app.use顺序

peng-tao

赞啊,不过咋没看到收藏功能呢?

1340641314

有没有关于objectId多个关联查询的,通过populate我只知道能查询一个,不知道如果有多个应该怎么查询

i5ting

@1340641314 不会吧?你再细看看

1340641314

@i5ting 【了解db相关操作,先以mongoose为主】mongoose objectId的相关资料是没有,我是前端学nodejs,感觉这个有点难理解,网上找的资料不全。翻了本站几十个分页都没有这个相关的查询资料,增删改查等。单纯的没有objectId的,增删改查倒是会,多表关联的就不知道怎么玩了。

i5ting

@1340641314 先了解一下什么是nosql吧

i5ting

@1340641314 多表关联,mongoose做的非常好,ref即可,剩下的就看设计能力了

hades

顶下!~~

magicdawn

学koa吧 ~ Sep 3rd发布 node v4.0 ~ 不过koa现在感觉半死不活的~

fengchenxiujisd

记下 一点点学习

baoniu

KOA框架就是有点小,自己要实现的东西好多

wenbob

繞過後端MVC框架(express等),直接用前端MVP框架了(react,riot等)。這樣學習負擔就小得多了。 另外,異步的解決,我也不認同。用npm install async 或者用 iced-coffee 都好過 promise 。主要是 promise 對第三方代碼的侵入太多, async 更易於理解和使用。 iced-coffee 則是從語法層面直接解決問題。如果我開個速成清單,那就是:

1 nginx 部署 2 html / css / jquery / ajax 基礎 3 coffee-script / iced-coffee-script 語法 4 npm 用法 5 bower 用法 6 nodeunit 用法(tdd自動化測試什麼的太博大精深,能單元測試就行了) 7 socket.io 前後端通訊(不學express,太複雜) 8 materializecss / bootstrap / foundation / jqueryUI UI框架(會寫html模板,會用控件的js方法就行了,不求全面,用的時候會查資料就行) 9 riot.js / react 前端框架 10 async、moment、lodash、debug 庫 11 mongoskin 用法(部署運維什麼的太博大精深,能單機就行了) 12 redis 用法(部署運維什麼的太博大精深,能單機就行了) 13 node.js cluster 模式的使用

相信學過這些,就能寫出後端能承受大流量、前端能晃瞎氪金眼的網站了

chenqing

express 已经用的够够的了,真的, 卧槽,要吐了……——……

callmewhy

卧槽等下,楼主一周足矣是指 NodeJS 入门还是指这些全部技术栈。。。

dd1994

我去学习一周,学不会回来打楼主。。。

sherylynn

很好的内容啊

leapon

呼唤 2015年9月 的版本

WilliamDu1981

能不能把这些技术相关的资料也附在后面,谢谢大神

pobing

对新手来说是很好的学习曲线,赞

JerryC8080

单元测试的话,作者有没有什么持续自动化测试的方案啊?

JerryC8080

@i5ting 干货,感谢!!

pangguoming

哥,受小弟一拜,mark

ryuever

mark,学习了

qxl1231

用webstorm 直接可以秒杀nodedebug, 调试打断点跟踪都很方便

i5ting

@qxl1231 就好像说php是最好的语言一样

qxl1231

@i5ting webstorm 跟php有毛关系?你用过么?这个ide是开发js和web前端的哈

sharking

了解了感觉还不错

i5ting

@qxl1231 你觉得呢?。。。。

i5ting

要不要把这些内容都写出来呢?

alsotang

@i5ting 我联系图灵的人帮你出书吧。。

i5ting

年终总结翻出来

keenwon

没有记录日志的模块?

hinson0

顶。项目上用了很多。

minorpoet

mark, 为什么说不建议直接koa?

i5ting

@minorpoet 即使现在也不建议,express成熟度非常高

libook

学Koa吧~,别研究express了

i5ting

@libook 等koa2发了再说,生产环境还是express比较好

kolyjjj

没有建议上ES6么?还是ES6在进阶里面

Edward1992

非常棒的文档,需要花时间慢慢消化和内化。

libook

@i5ting 我们生产环境就在用Koa,运营两个月了,目前没有任何问题。。。

libook

@i5ting 不好意思,忘说版本了,是1,你可以试试,压测结果挺好看的~

i5ting

@libook 1是比较稳定的

plusmancn

mark


node-inspector 项目一大卡爆,怎么破~~

i5ting

@plusmancn vsc会好点,现在的devtool也可以考虑

jxwht005

标题应该改成:“Node.js最新Web前端技术栈”

jxwht005

@i5ting 你提到的都是前端的框架或者模板,没有后端的技术

dmwin72015

我猜了解过1两种,怎么入门?