分类: nodejs

  • node.js 复制文件最快的方法

    node.js 复制文件最快的方法

    Subway

    最快的方法

    var fs = require('fs');
    
    fs.createReadStream('test.log').pipe(fs.createWriteStream('newLog.log'));
    

    改进使其可以接受回调

    function copy(source, to, callback) {
      var read = fs.createReadStream(source);
      source.on('error', function (err) {
        done(err);
      }
    
      var write = fs.createWriteStream(to);
      write.on('error', function (err) {
        done(err);
      }
      write.on('finish', function () {
        done();
      }
      read.pipe(write);
    
      function done(err) {
        if (err) {
          throw err;
        }
        callback();
      }
    }
    

    继续添加 Promise,并且用 ES2015 的写法

    function copy(source, to) {
      return new Promise( resolve => {
        let read = fs.createReadStream(source);
        source.on('error', err => {
          throw err;
        });
    
        let write = fs.createWriteStream(to);
        write.on('error', err => {
          throw err;
        });
        write.on('finish', ()=> {
          resolve();
        });
    
        read.pipe(write);
      });
    }
    
    // example
    copy('a.txt', 'b.txt')
      .then( () => {
        console.log('copy success');
      })
      .catch( err => {
        console.log('copy error: ', err);
      });
    

    来源:StackOverflow

    Fastest way to copy file in node.js

  • npm start, npm stop

    npm start, npm stop

    使用 npm 可以直接调用 package.json 里面 scripts 标签里定义的脚本。比如,Astinus 项目中,index.js 是入口JS,并且需要 ES6 支持,就可以这样:

        // package.json
        {
          "scripts": {
            “start": "node index --harmony"
          }
        }
    

    然后直接运行

        npm start
    

    即可。

    那么怎么终止进程呢?

    首先要在 index.js 里增加一句

        process.title = 'astinus';
    

    声明该应用的标题是“astinus”,然后增加脚本:

        {
          "scripts": {
            "start": "node index --harmony",
            "stop": "killall SIGINT astinus"
          }
        }
    

    之后就可以

        npm stop
    

    参考:

  • 新版node.js安装教程

    知道node.js这个东西后,一直想尝鲜。今天终于下手,先要安装环境,看了好多教程,没看太明白,似乎很难的样子。

    最后按照官方文档自己尝试了才知道,原来现在安装node.js已经完全自动化了。我用的是Ubuntu 10.4,先更新一下源:

    sudo apt-get update
    sudo apt-get upgrade

    然后安装GNU make和git,接着clone代码,最后make就ok了。

    sudo apt-get install gcc
    sudo apt-get install git-core
    git clone git://github.com/joyent/node.git
    cd node
    ./configure
    make
    make install

    make的过程比较久,让它慢慢跑就是了,完成后,就可以在命令行里测试了。现在node.js已经是0.9.3-pre版了,看到版本号很高,心里很高兴呀~

    node -v // v0.9.3-pre
    node
    > console.log('hello, world') // hello, world

    今天先到这里,将来哪天开新项目的时候用node.js做后端吧。