NodeJS

  • 为什么需要获取私有方法

    假定有这样一个模块

    example/
        lib/index.js
        test/index-spec.js
    

    其中 example/lib/index.js 的代码

    module.exports = function(){
        privateFn()
        // call more private functions   
    }
    
    function privateFn = function() {
        return 'private function'
    }
    
    // more private functions
    

    这个模块仅暴露了一个公共方法,而这个公共

  • master.js

    var childprocess = require('child_process');
    var worker = childprocess.fork('./worker.js');
    
    console.log('pid in master:', process.pid);
    
    worker.on('message', function(msg) {
      console.log('1:', msg);
    })
    process.on('message', function(msg) {
      console.log('2:', msg);
    })
    
    worker.send('---')
  • 几乎所有的浏览器都提供了命令行启动的 API(例如 firefox)。因此,在 NodeJS 中,你可以调用 var proc = spawn({{command}}, {{options}}) 来来打开一个浏览器。

    本文假定开发者通过此种方式来打开一个浏览器,并持有该进程。

    以下是正确关闭浏览器应该知道的事情

    Windows 中打开浏览器时获得的进程(号)并不可靠,可能发生变更或转移。详细结论可参见之前的一篇文章:浏览器进程表现。

    Win7中,浏览器不管通过何种方式关闭后进程不会马上结束。可使用 Win7 的 资源监视器 观察到这一点。注意:在 资源管理器 中是无法观察到的。

    由于浏览器有可

  • fs(file system) 模块提供了基础的文件操作,提供的接口大部分上是对操作系统底层POSIX接口的简单封装,所以你会发现为什么有些api没有遵循驼峰命名法(比如rmdir / mkdir)等,而有些则是遵循的(比如readFile / writeFile)等~

    官方fs库

    官方fs文档传送门
    所有api都有详细文档说明,这里就不再赘述了~(值得注意的是对于那些POSIX接口的api,可能只给出了一个类型rmdir(2)的描述,这时你就需要到你的命令行下执行 man rmdir 2 来看接口描述了)

    同步 vs. 异步

    fs库中所有api都有同步(synchronous)和异步(asy