zoukankan      html  css  js  c++  java
  • node.js的特点与模块化开发

    node.js的代码都是构建在模块化开发的基础之上,模块化开始也是node.js的核心之一。

    node.js跳过了服务器,它自己不用建设在任何服务器软件之上,node.js的许多设计理念与经典架构(LAMP=linux +apache +mysql+php)有着很大的不同,它可以提供强大的伸缩能力,node.js没有web容器。

    node.js的自身哲学:花最小的成本,追求更高的并发,更高的处理性能

    node.js的特点:1.单线程

           2.非阻塞I/O   

              什么是IO? 就是输入和输出(input,output),什么会输入输出?如:硬盘,网络,file,socket,其他mysql,tcp都是网络IO的一种

           3.事件驱动

    阻塞模式下,一个线程只能处理一个任务,想要提高吞吐量必须通过多线程,而非阻塞模式下,一个线程永远在执行计算操作,这个线程的CPU核心利用率永远是100%。

    node.js底层是C++ (V8也是C++写的).底层代码中,近半数都用于事件队列,回调函数队列的构建,用事件驱动来完成服务器的任务调度。(鬼才)

    node.js没有根目录,没有web容器,让node.js实现一个静态服务都非常难!!

    传统非模块化开发的缺点:1.命名冲突   2.文件依赖

    标准的模块化规范:

    1。AMD -requirejs

    2。CMD- seajs

    模块化的规范定义的一些写代码的规则,只要遵循了同样的标准,基本上风格都是一致的

    服务端的模块化规范:

    1.Common.js  -Node.js

    模块化相关的规则:

    1.一个js文件 都是一个独立的模块,模块内部的成员都是相互独立的

    2.模块化的导入和导出

    案例1(exports):

    在01.js文件中

    var sum=function(a,b){
       sum = parseInt(a)+parseInt(b);
          
    }
    
    exports.sum=sum;

    在02.js文件中

      //用require 进入模块
    
    var module =require(./01.js)   //当前文件夹下的01.js文件
    var ret =module.sum(12,13);
    console.log(ret);
    View Code

    案例2(moudle)

    在01.js文件中

    var sum=function(a,b){
       sum = parseInt(a)+parseInt(b);
          
    }
    
    module.exports=sum;

    在02.js文件中

    var module=require('./01.js')
    
    var ret=moudle(12,15);
    console.log(ret);

    成员的导出,还可以用global这个全局对象来实现

    模块化的一些特性:

    1.已经加载的模块会缓存(根据文件的路径,知晓已经加载的模块,不会重复加载),提高了性能

    2.模块文件的后缀的3中情况:  js  json  node   (不加文件后缀,同名文件的优先级是按照从左到右的文件加载)

    除了自定义模块还有 

        系统的核心模块(mudule):

      1.fs文件操作

      2.http网络操作   

        创建服务器  http.create( function(req,res)   {... } )

      3.path路径操作

      4.querystring查询参数解析(与url有重叠)

      5.url     url解析   url.parse(a,b)   能将url拆分成很多个部分

     

     

  • 相关阅读:
    忍者X3 链接统计工具
    新版淘宝客广告生成器发布
    今天编写了淘宝客生成工具
    淘宝客appkey做了大范围的取消、查封
    DiscuzX3.0 发布插件
    网易博客营销插件
    [转]iOS 应用程序的生命周期
    [转]Xcode的快捷键及代码格式化
    OC——关于KVO
    OC——关于KVC
  • 原文地址:https://www.cnblogs.com/JCDXH/p/11382498.html
Copyright © 2011-2022 走看看