前阵子做的项目中,字段比较多,初学node代码写的很混乱,最终成了酱紫:
现在准备重构这个项目,callback用promise替代,用orm替代手写sql语句,这里有两个问题:
- nodejs中大部分操作是回调式的,假设使用Q的话,是否要用
.defered()
方法在函数入口处promise化,然后继续逻辑处理? - orm搜了一下,发现start最多的式 http://sequelizejs.com/,准备翻翻文档用起来,orm除了无需手写sql之外还有什么好处吗?目前有哪些开源项目使用了orm+promise?
tks
25 回复
@ravenwang 看了这个系列文章:http://segmentfault.com/blog/kk_470661/1190000000586666 (链接后面的文字也会成文链接) 就先使用 Q 没有用 bluebird 了,不知道是智商不够还是和棒子思维不一样,很难入门 Q
@alsotang 弄懂回调才是根本,在这个基础上,async eventproxy promise 自然就都明白了。有些人本末倒置了,还要来惊诧一下。
弄不明白回调的,上面的库再华丽,也是纸糊的。因为库不可能帮人解决所有问题,如果这个库有解决所有问题的愿望,就会变得很复杂很庞大,那就陷入了另一个无法理解的境地。所以我认为弄懂根本才是正途。
我也很喜欢回调,所以我喜欢async。
用yield处理回调呀,tj大神的co很好用的,node v0.11版本 支持 es6 的yield,再用koajs就好极了,哈哈,另外我自己是觉得没必要非要搞个orm,自己写个sql模板,把sql和js代码分离出来,用的时候用参数填充下sql模板,又轻量又简洁。
@yeaha 没必要扣这么大的帽子,如果你认为我的语言让你不舒服了,还请见谅。
你仔细读下我的文字,我的意思是用各种库之前要真正理解了回调本身,我并没有针对个别人。如果说要针对,仅仅对那个惊诧的人而已,我也只是说了本末倒置,并未假设他就不懂回调。