飞翔的鱼对《Node.js开发指南》的笔记(6)

Node.js开发指南
  • 书名: Node.js开发指南
  • 作者: 郭家寶(BYVoid)
  • 页数: 178
  • 出版社: 人民邮电出版社
  • 出版年: 2012-7
  • 第10页
    Node,js是CommonJS的一个实现,它基于CommonJS的Modules/1.0规范实现了Node.js的模块。
    CommonJS规范包括了模块Modules、包packages、系统System、二进制binary、控制台console、编码encodings、文件系统filesystems、套接字sockets、单元测试unit testing等部分。
    MongoDB
    2013-10-15 23:07:53 1回应
  • 第18页
    node包管理器(npm)是一个由Node.js官方提供的第三方包管理工具。
    Node多版本管理器(Node Version Manager, nvm)可以管理多版本的Node,其中n是一个十分简洁的Node多版本管理器,可以使用npm install -g n命令安装n。
    n无法管理通过其他方式安装的Node,js版本实例,必须通过n安装Node.js才能管理多版本的Node.js.
    2013-10-15 23:16:45 回应
  • 第25页
    node的REPL模式:Read-eval-print loop,输入-求值-输出循环
    2013-10-15 23:18:50 回应
  • 第28页
    在Node.js中开发的Http应用时会发现,无论修改了代码的哪一部分,都必须终止Node.js再重新运行才会奏效:Node.js只有在第一次引用到某部分时才会去解析脚步文件,以后都会直接访问内存,避免重复载入。这种设计有利于提高性能,却不利于开发调试。
    supervisor可以监视代码的修改,自动重启Node.js
    使用npm install -g supervisor安装supervisor
    使用supervisor app.js便可启动app.js文件了
    2013-10-16 10:05:20 回应
  • 第44页
    1、在需要发布的文件夹运行npm init便可发布,创建了一个符合npm规范的package.js文件
    2、使用npm adduser添加用户,使用npm查看帐号
    3、使用npm publish发布包
    2013-10-16 22:56:51 回应
  • 第160页
    理解bind函数:
    var someUser={
         name:'byvoid',
         func:function(){
             console.log(this.name);
         }
    };
    
    var foo={name:"foo"};
    
    func=someUser.func.bind(foo);
    func();//output:foo
    
    func2=func.bind(someUser);
    func2();//output:foo
    
    bind方法的原理:
    someUser.func.bind=function(self){ 
        return this.call(self); 
    }; 
    
    假设上述函数是someUser.func的bind方法的实现,函数体内的this指向的是someUser.func,因为函数也是对象,所以this.call(self)的作用是以self作为this指针调用someUser.func。
    //将func=someUser.func.bind(foo)展开:
    func=function(){
        return someUser.func.call(foo);
    };
    
    //再将func2=func.bind(someUser)展开:
    func2=function(){
        return func.call(someUser);
    };
    
    从上面的展开过程可以看出,func实际上是以someUser作为func的this指针调用了func,而func根本没有使用this指针,所以两次bind是没有效果的。
    2013-10-30 13:00:46 回应