CNode

Node.js最新Web技术栈(2015年5月)

精华
分享
Ii5ting发布于11 年前最后回复10 年前93 回复39571 浏览0 收藏

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)

I
i5ting#1·11 年前

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

S
SoaringTiger#2·11 年前

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

A
alsotang#3·11 年前

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

J
jsanswer1#4·11 年前

……刚在 V2 上已经看到

I
i5ting#5·11 年前
S
songqinghehe#6·11 年前

mark

J
joney-pinkman#7·11 年前

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

J
jackhutu#9·11 年前

mark

G
GinPonson#10·11 年前

谢谢分享

R
runjinz#11·11 年前

非常不错

J
joney-pinkman#12·11 年前
引用 Pana@joney pinkman 话说 ES6 6 月能发布么

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

D
dean5277#13·11 年前

很不错的内容

I
iwhys#14·11 年前

很不错 学习啦

M
mBigFlower#15·11 年前

MARK! 求问:

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

L
likunpeng#16·11 年前

这文章真心不错呢

H
HugoJing#17·11 年前

好文章

I
i5ting#18·11 年前

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

K
knightuniverse#19·11 年前

谢谢分享

C
chuangtim#20·11 年前

不错

S
sternelee#21·11 年前

+1

P
peng-tao#22·11 年前

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

P
Pana#23·11 年前

1
1340641314#24·11 年前

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

D
dongguangming#25·11 年前

1
1340641314#27·11 年前
引用 i5ting@1340641314 不会吧?你再细看看

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

M
marsprince#31·11 年前

非常有用!

H
hades#32·11 年前

顶下!~~

M
magicdawn#33·11 年前

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

F
fengchenxiujisd#34·11 年前

记下 一点点学习

H
huangff1986#35·11 年前

mark

B
baoniu#36·11 年前

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

I
i5ting#37·11 年前

其实,还有ppt版本的 http://nodeonly.com/nodesang

G
Guicai-Li#38·11 年前

mark

W
wenbob#39·11 年前

繞過後端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 模式的使用

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

C
chenqing#40·11 年前

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

C
callmewhy#42·11 年前

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

D
dd1994#43·11 年前

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

S
sherylynn#44·11 年前

很好的内容啊

L
leapon#45·11 年前

呼唤 2015年9月 的版本

W
WilliamDu1981#46·11 年前

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

P
pobing#47·11 年前

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

G
Guicai-Li#48·11 年前

mark

Z
zhangjx#49·11 年前

mark

W
wewea#50·11 年前

mark

J
JerryC8080#51·11 年前

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

P
pangguoming#54·11 年前

哥,受小弟一拜,mark

Y
yzbbob#55·11 年前

赞一个

R
ryuever#56·11 年前

mark,学习了

Q
qxl1231#57·11 年前

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

I
i5ting#58·11 年前
引用 qxl1231用webstorm 直接可以秒杀nodedebug, 调试打断点跟踪都很方便

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

Q
qxl1231#59·11 年前
引用 i5ting@qxl1231 就好像说php是最好的语言一样

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

S
sharking#60·11 年前

了解了感觉还不错

Q
QuoniamYIF#62·11 年前

mark

D
DexSinis#63·11 年前

mark

C
chenpeng1102#64·11 年前

mark

I
i5ting#65·11 年前

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

A
alsotang#66·11 年前
引用 i5ting要不要把这些内容都写出来呢?

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

G
GeorgeYan#67·11 年前

mark

Y
yinzSE#68·11 年前

@wenbob @i5ting 收下了. 哈

E
echoloyuk#69·11 年前

mark

I
i5ting#70·11 年前

年终总结翻出来

K
keenwon#71·11 年前

没有记录日志的模块?

S
sayfly#72·11 年前

mark

I
i5ting#73·11 年前
引用 keenwon没有记录日志的模块?

@keenwon 级别不够

W
weierbufan#74·11 年前

mark

H
hinson0#75·11 年前

顶。项目上用了很多。

M
minorpoet#76·11 年前

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

I
i5ting#77·11 年前
引用 minorpoetmark, 为什么说不建议直接koa?

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

L
libook#78·11 年前

学Koa吧~,别研究express了

I
i5ting#79·11 年前
引用 libook学Koa吧 ,别研究express了

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

K
kolyjjj#80·11 年前

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

E
Edward1992#81·10 年前

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

L
libook#82·10 年前
引用 i5ting@libook 等koa2发了再说,生产环境还是express比较好

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

L
libook#84·10 年前
引用 i5ting@libook 1还是2?

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

H
huydev#86·10 年前

mark

P
plusmancn#87·10 年前

mark


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

I
i5ting#88·10 年前
引用 plusmancnmark node inspector 项目一大卡爆,怎么破

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

J
jxwht005#89·10 年前

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

J
jxwht005#91·10 年前
引用 i5ting@jxwht005 why?

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

P
plusmancn#92·10 年前

@i5ting vim 党 ~~~

D
dmwin72015#93·10 年前

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

参与回复
登录后即可参与回复。登录