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拆分成很多个部分

     

     

  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/JCDXH/p/11382498.html
Copyright © 2011-2022 走看看