Taobao FED

分类:Node.js

如何优雅的在 koa 中处理错误

软件开发时,有 80% 的代码在处理各种错误。 ——某著名开发者 想让自己的代码健壮,错误处理是必不可少的。这篇文章将主要介绍 koa 框架中错误处理的实现(其实主要是 co 的实现),使用 koa 框架开发 web 应用时进行错误处理的一些方法。 基础在 Node.js 中,错误处理的方法主要有下面几种: 和其他同步语言类似的 throw / try / catch 方法 callbac

深入理解 GraphQL

0.引子通过上一篇文章我们对 GraphQL 有了基础的了解。我们知道 GraphQL 使用 Schema 来描述数据,并通过制定和实现 GraphQL 规范定义了支持 Schema 查询的 DSQL (Domain Specific Query Language,领域特定查询语言)。Schema 帮助将复杂的业务模型数据抽象拆分成细粒度的基础数据结构,而 DSQL 的实现则赋予了前端开发者自由

通通连起来——无处不在的流

最近总是听见 liu 这个东西啊,比如 liu 翔低调宣布新恋情啦、 liu 强冬告白奶茶啦、微软停止支持 IE liu 览器啦,最近我们的淘宝前端夜校讲师也提到了 liu (流)的运用。 在 Unix 系统中流就是一个很常见也很重要的概念。 Unix 的哲学:一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。 – Douglas McIlroy 还记得

进程间通信的另类实现

背景Node.js 内置的进程间通信使用非常简单,但也有一定的局限性,只能在父子进程间通信。下面是官方文档给的一个例子。 首先是父进程的 parent.js : 12345678const cp = require('child_process');const n = cp.fork(`${__dirname}/sub.js`);n.on('me

前端也应该了解点 docker 知识:docker 架构(上)

上一篇文章 前端也应该了解点 docker 知识:docker 的理念与场景 介绍了 docker 的一些理念,以及在前端方面可能的应用场景,本篇我们梳理一下 docker 的架构。 话说,我们团队的小明同学看了上篇文章之后,很是激动,迫不及待的想尝试下 docker ,然后按照网上一些教程跑出来了一个 “Hello world” ,激动的差点把鼠标给扔了。如果小明的故事到这里,那就不是我们团

前端也应该了解点 docker 知识:docker 的理念与场景

我觉着你是看了题目点进来的。前端和 docker 这俩八竿子打不着的有毛关系?那接下来我们就扯一扯,看看能不能把它俩扯一块。 首先得达成共识,现在的前端已经不是以前的狭义的前端,如果指狭义的前端,那真是半毛钱关系都没有。但你我不可否认的是,现在是大前端的时代。什么是大前端,详细的应该大老板来给解释下,但是这里还是简单的去说一下: 前端有了 Node.js,扩展到了服务端的边界,未来有更多的可能

记一次 Node.js 应用内存暴涨分析

起因之前 TMS 在运行时 CPU 中占用率和内存占用一直很高,导致应用运行状态不是很良好,需要频繁重启。经过排查,找出了部分原因: 使用的 html-minifier 模块有问题,如果输入的内容是一个有错误的 HTML 结构,会使解析进入死循环,导致 CPU 占用率 100%。 在使用 vm 模块时,使用姿势错误,导致内存占用无法释放,使内存占用暴涨。 第一个问题我们今天不予讨论,主要

让我们谈谈「生产环境中的 Node.js」- Node 地下铁第 1 次线下沙龙总结

1 月 9 日下午,Node 地下铁第 1 次线下沙龙在北京京仪大酒店举行,当天也是难得的好天气。 本次沙龙邀请到了 4 位线上 Node.js 大规模应用设计以及性能调优的核心工程师,共同就「生产环境中的 Node.js」这一主题进行分享。 感谢各位同学的参与,13 点半签到,很快会议厅就被挤满了,对那些全场站在后排听完分享的同学表示抱歉~ 分享Node.js 助力淘宝大促活动峰值 4 万 Q

找回 Node.js 里面那些遗失的 ES6 特性

由于 Babel,WebPack, React 技术的流行, 小明同学已经开始在前端代码里面用上了 ECMAScript 2015 (以下称 ES6 ) 的众多特性。import, export, class, arrow function, let const 等等关键词甚至都已经开始变成小明的肌肉记忆。 但是等等,对于小明这样既写 React 又写 Node.js 的的人来说,又有点分裂了。

Node.js 源站应用稳定性保障

源站与 CDN源站是 CDN 技术中的一部分,是发布内容的原始站点。CDN 负责承载流量的部分称做缓存服务器,而缓存服务器自身不生产内容,需要从源站获取原始内容。Dragonfly 作为淘宝内容管理系统(CMS)的源站,渲染并为缓存服务器提供了所有的页面内容。 Dragonfly 使用 Node.js 开发,稳定性保障是一边实践探索、一边总结经验。现在来回顾,稳定性保障涉及了 Dragonfly