node

  • 翻译:https://blog.heroku.com/archives/2015/11/10/node-habits-2016

  • Why use Docker Compose?

    Published on Medium.

    Docker 到底有什么优点吸引我们?

    • Build:允许自由组合各种服务来构建我们的应用,避免开发生产之间的环境问题,并且不局限在任何平台和语言
    • Ship:通过统一的用户接口,管理,设计应用开发、测试、发布的生命周期
    • Run:可以快捷地在多个平台,发布可扩展、安全、可靠的服务

    Use it!

    说了这么多,那就让我们玩起来!

    0. Install Docker Tools

    $ brew install docker docker-machine docker-compose
    $ docker help
  • nodejs之process模块

    process可以用于node和系统中已经存在的进程进行交互,创建工作子进程等。process模块是一个全局对象,允许你获得或者修改当前node进程的设置。

    1.process的引入

    process模块用来与当前进程互动,可以通过全局变量process访问,不必使用require命令加载。它是一个EventEmitter对象的实例。

    2.process事件

    1)exit事件

    当前进程退出时(即按"ctre+c"时)会触发exit事件,可以对该事件指定回调函数。这是一个用来定时检测模块状态的钩子。当主事件循环在执行完exit的回调函数后将不再执行,所以在ex

  • Node FileSystem

    Node为所有API实现了同步Synchronous和异步Asynchronous,性能上得到了极大的优化。

    同步or异步

    从网站处理并发来讲,异步为此而生。但就前段项目工程化的角度,只是用来实现页面静态化输出,同步的性能要优于异步,毕竟在整体执行时间上有一点小优势,且能跳过不少异步的坑。

    // vs.js
    var fs = require("fs");
    
    // Asynchronous read
    fs.readFile('vs.txt', function (err, data) {
       if (err) {
           return console.er
  • 继上一次的koa源码解读,今天来聊一下koa-router

    文件结构及内容关联

    从源码文件中可以看到,koa-router只有两个文件,layer.jsrouter.js,分别定义了RouterLayer两个对象。相对于express的内置路由,koa-router少了一个route对象,使得逻辑更加简单,下面通过一张图来解释RouterLayer对象之间的关系。

    images

    正如上图显示,Router对象中有一个stack的成员属性,而stack又是一个由Layer组成的数组,这样就使两者关联起来了。两个对象之间的原型函数函数也列举出来了,比较直观和简单。

    运行流程

    在我们的项目路由文件中引入