初探 TypeScript 类型编程

2020-09-17
阅读 5 分钟
7k
平常我们编写 TypeScript 时,主要会使用类型注解(给变量、函数等加上类型约束),这可以增强代码可读性、避免低级 bug。实际上 TypeScript 的类型系统设计的非常强大,强大到可以单独作为一门编程语言。本文是自己学习 TypeScript 类型编程的一个总结,希望对你有帮助。

Node.js 命令行工具检查更新的正确姿势

2017-06-07
阅读 5 分钟
7.1k
随着 Node.js 的“走红”,使用 Node.js 开发命令行工具越来越简单。一个成熟的命令行工具应该从一开始就要考虑好之后的版本更新如何“优雅”的告知用户。最好的方法当然是当用户在终端执行命令时,将相关信息提示给用户。

在 spawn 的子进程中保持命令行颜色

2016-09-15
阅读 3 分钟
7k
最近在用子进程运行 gulpfile.js 的时候发现终端上的颜色全部没有了,很是奇怪。经过一些研究,最终解决了问题,同时也总结了一些相关知识。希望对你有帮助。

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

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

你可能不知道的 Promise

2016-05-02
阅读 7 分钟
9.6k
本文首发于我的博客,转载请注明出处:[链接] 开始之前,我们先来一个“脑筋急转弯”。假设 later 函数调用后返回一个 promise 对象,下面这 4 种写法有什么区别? {代码...} 大家可以先实际去运行代码看看输出结果:#1、#2、#3、#4,想想为什么是这样的输出,然后回来继续阅读。 Promise 是什么 Promise 是对异步处理的一...

你可能想知道的 Node 子进程模块

2016-04-25
阅读 9 分钟
10.3k
最近在使用 Node 的子进程模块实现一些功能,对相关知识进行了一个系统的学习总结,这篇文章将会简要介绍我总结的 Node 中和进程有关的内容。包括:进程和线程、Node 的单线程的真正含义、创建进程的三种方法、进程间通信、进程以及信号量。有不当之处欢迎提出,一起交流。

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

2016-03-28
阅读 4 分钟
17.6k
最近 NPM 圈发生了“一个 17 行的模块引发的血案”。left-pad 工具模块被作者从 NPM 上撤下,所有直接或者间接依赖这个模块的 NPM 包就忧伤的挂掉了,包括 babel 这样的热门项目。

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

2016-03-15
阅读 8 分钟
12.1k
想让自己的代码健壮,错误处理是必不可少的。这篇文章将主要介绍 koa 框架中错误处理的实现(其实主要是 co 的实现),使用 koa 框架开发 web 应用时进行错误处理的一些方法。

关于“时间”的一次探索

2016-01-12
阅读 11 分钟
30.2k
最近使用 sequelize 过程中发现一个“奇怪”的问题,将某个时间插入到表中后,通过 sequelize 查询出来的时间和通过 mysql 命令行工具查询出来的时间不一样。非常困惑,于是研究了下,下面是学习成果。

记一次 MySQL 数据库问题排查

2016-01-06
阅读 4 分钟
10.6k
最近遇到应用频繁的响应缓慢,无法正常访问。帮忙一起定位原因,最后定位到的问题说起来真的是很小的细节问题,但是就是这些小细节导致了服务不稳定,真是细节决定成败。这里尝试着来分享下,希望对大家有所帮助。

深入 Node 模块的安装和发布

2015-12-29
阅读 5 分钟
20.4k
npm 是一个方便的 Node 模块分发、管理工具。我们平常会使用 npm install 安装模块,使用 npm publish 发布模块。事实上除了基本功能,这 2 个命令还有其他非常有用的特性。这篇文章会给大家介绍这些命令的一些“高级”用法。

记一次 MySQL 的慢查优化

2015-12-22
阅读 3 分钟
6.9k
我首先查看了 MySQL 的慢查询日志,发现有这样一条 query 耗时非常长(大概在 1 秒多),而且扫描的行数很大(10 多万条数据,差不多是全表了):

Sequelize 和 MySQL 对照

2015-11-12
阅读 29 分钟
103.5k
在使用NodeJS来关系型操作数据库时,为了方便,通常都会选择一个合适的ORM(Object Relationship Model)框架。毕竟直接操作SQL比较繁琐,通过ORM框架,我们可以使用面向对象的方式来操作表。NodeJS社区有很多的ORM框架,我比较喜欢Sequelize,它功能丰富,可以非常方便的进行连表查询。

yield 和 yield*

2015-11-11
阅读 5 分钟
13.1k
最近在看 koa 的中间件实现时,总是看到 yield* next 这种用法,觉得很困惑。下面是学习成果。 代理 yield 我们先来看看原生语法中,代理 yield(delegating yield)的含义和用法。 首先是下面的代码(普通的 yield): {代码...} 然后是下面的代码(代理 yield): {代码...} 根据文档的描述,yield* 后面接受一个 iter...