React 是一个用来创建用户界面的 JavaScript 库。

它从一开始就被设计为 gradual adoption 渐进式融入的模式,你可以根据需求使用 React 到你的项目中,无论是使用 React 对你的 html 页面做简单交互,或者完全使用 React 搭建程序。

阅读全文


TypeScript 是微软开发的开源编程语言,在全世界的开发者中流行。

本质上来说 typescriptJavaScript 的超集,为其添加了很多功能。标志性的就是添加了 static type 静态类型定义,它可以声明期待的数据类型,例如:声明 function 中的期待的传入数据类型,期望的返回值的类型,object 的结构及 property 的数据类型等。

typescript 是一个强大的工具,给 JavaScript 项目开启了新的世界。它使我们的代码更加的安全有力,在程序发布前就可以防止很多的 bug 出现。在编写代码期间就能够及时反映出问题点,并且它已经被整合在现代的编译器中,如 VS code。

阅读全文


environment 运行环境

production environment 产品环境development environment 开发环境可以设置不同的配置。

node.js 默认为 development env 开发环境。通过设置环境变量:NODE_ENV=production 可以告诉 node.js 当前为产品环境。Linux 中可以通过如下指令修改:

export NODE_ENV=production

这样在当前 shell 中就会以 production 模式运行 node 程序,如果要永久修改此环境变量可以将命令写入 ~/.bashrc 文件。

也可以在运行 node 程序时定义 NODE_ENV

NODE_ENV=production node app.js

阅读全文


Streams 是驱动 node.js 程序的核心概念。它提供了处理对文件的读写,网络传输,或者其他端到端的数据交换的更加高效的方式。

streams 流并不是 node.js 首先引入的概念,unix 操作系统在很久之前就在使用了,一个程序可以通过 pipe 管道操作符 | 来传递 streams 流给其他程序。

下面的示例是在 Linux 中,通过 pipe 管道将 cat 读取的文件数据传递给 grep 进行过滤,test.txt 文件内容如下:

aaa bbb
bbb ccc
aaa ccc
$ cat test.txt | grep aaa
aaa bbb
aaa ccc

阅读全文


一个 buffer 缓存就是一个内存空间。JavaScript 开发者相较于 c++/go 等语言的开发者对内存的理解比较少。它表示在 JavaScript V8 engine 之外的分配的一块 fixed-size 固定大小的内存。可以想象 buffer 就是一个 integer 整型数组,每个元素代表一个 byte 的数据。

node.js 中 buffer 通过 Buffer class 实现。

阅读全文