Taobao FED

分类:Node.js

深入理解 Node.js Stream 内部机制

相信很多人对 Node.js 的 Stream 已经不陌生了,不论是请求流、响应流、文件流还是 socket 流,这些流的底层都是使用 stream 模块封装的,甚至我们平时用的最多的 console.log 打印日志也使用了它,不信你打开 Node.js runtime 的源码,看看 lib/console.js: 12345678910111213function write(ignoreE

「八面玲珑的 Node.js」- Node 地下铁第三期广州站线下沙龙总结

前言转眼 2016 年就要结束了,距上次地下铁沙龙已经过去了大半年,我们在这冬天来到温暖的广州,跟朋友们相聚一堂,一起学习探讨开发 Node.js 过程中的心得,以及探讨 Node.js 领域内的新动向。 本次活动受广州地主 UC 前端团队的大力支持,由 UC 提供了会场,博文视点、图灵、稀土掘金提供了本次活动的赞助。 广州的同学非常热情,会场里面座无虚席。 回顾Thrift 下的 Node

如何 hack Node.js 模块?

为何要去 hack?在业务开发过程中,往往会依赖一些 Node.js 模块,hack 这些 Node.js 模块的主要目的是在不修改工具源码的情况下,篡改一些特定的功能。可能会是出于以下几种情况的考虑: 总是存在一些特殊的本地需求,不一定能作为工具的通用需求来暴露正常的 API 给更多的用户。 临时且紧急的需求,提 PR 已经来不及了。 为什么不直接去改源码?考虑到工具会不定期升级,想使用工具

Node.js 和 C++ 之间的类型转换

我非常喜欢使用 Node.js,但是当涉及到计算密集型的场景时 Node.js 就不能够很好地胜任了。而在这样的情况下 C++ 是一个很好的选择,非常幸运 Node.js 官方提供了 C/C++ Addons 的机制让我们能够使用 V8 API 把 Node.js 和 C++ 结合起来。 虽然在 Node.js 官方网站有很多的关于怎么使用这些 API 的文档,但是在 JavaScript 和

纠结的链接:ln、ln -s、fs.symlink、require

最近在使用 fs.symlink 实现软链时,发现文档里面写的是:fs.symlink(target, path);然而 man ln 的时候显示的是:ln source_file target_file;而且,require 模块的时候其实还会处理软链但是处理的又不是想象中那样。于是,我彻底被相关东西绕晕。这篇文章算是我的学习笔记,希望对你有帮助。

Promise 反模式

Promises are about making asynchronous code retain most of the lost properties of synchronous code such as flat indentation and one exception channel. – Bluebird Wiki: Promise Anti Patterns Promises

如何定位 Node.js 的内存泄漏

在 《一次 Node.js 应用内存暴涨分析》中,我们处理了一个 Node.js vm 引发的内存泄漏问题,处理过程也是比较艰辛。而在我们实际开发中,可能经常会碰到内存泄漏的问题,但很多情况下,我们对于这种问题的处理是有些迷茫的,没有一定的操作流程,效率比较低。虽然这种问题对于经验的要求比较高,但如果有一个简单的排查流程,还是会有一定帮助的。 这里简单整理一个流程,欢迎一起探讨,补充。 基础知识

企业级 Node.js Web 应用解决方案设计的零零总总

年前一直在忙着做新版 Midway 升级的事情,不少同学都知道 Midway 是淘宝的 Node.js Web 应用解决方案,目的是为了更好的做前后端分离,让前端同学开发更简单,生活更幸福(笑)。 如今 Midway 5 正式发布了,横跨了几个月的开发个工作,期间带来的感慨,也算是史上最多。 Midway 的诞生也有 2 年多的时间,我个人参与维护也有 1 年多,经历了从 v3 到 v5 的变化

「开往春天的 Node.js」 - Node 地下铁第二期线下沙龙总结

前言寒冬已逝,春之伊始。 3 月 26 日下午,Node 地下铁第 2 次线下沙龙在上海世博展览馆万信酒店举行。本次沙龙邀请了四位在不同领域应用 Node.js 进行探索的大牛,带着我们在温暖的午后,感受 Node.js 的魅力。 虽然当天是近来久违的好天气,而且会场地点有些偏,但这些都没有令同学们对 Node.js 的热情衰减,13 点半签到,很快会议室的位置所剩无几了,在这里,组委会感谢各位

从 left-pad 事件我们可以学到什么

最近 NPM 圈发生了“一个 17 行代码的模块引发的血案”。left-pad 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目。 而其中的原因大概是这样:作者 Azer 写了一个叫 kik 的工具和某个公司同名了,这天公司的律师要求其删掉这个模块,把 kik 这个名字“让”给他们,作者不答应,律师就直接找 NPM 了,