zoukankan      html  css  js  c++  java
  • NODE编程(一)--Node功能的组织和重用

    Node开发面对的两个问题:

      1、如何组织代码

      2、如何进行异步编程。

    一、Node功能的组织和重用

      Node模块允许你从被引入文件中选择要暴露给程序的函数和变量。如果模块返回的函数或变量不止一个,那它可以通过设定exports对象的属性来指明他们。但如果模块只返回一个函数或变量,则可以设定module.exports属性。

      1、创建模块

      模块即可能是一个文件,也可能是包含一个或多个文件的目录。如果模块是个目录,Node通常会在这个目录下找一个叫index.js的文件作为模块的入口。

      典型的模块是包含exports对象属性定义的文件,这些属性可以是热议类型的数据。比如字符串、对象和函数。

      例:定义一个Node.

    var canadianDollar = 0.91;
    function roundTwoDecimals(amount){
        return Math.round(amount *100) / 100;
    }
    exports.canadianToUs = function(cannadian){     //canaduanToUs函数设置在exports模块中,所以引入这个模块的代码可以使用它
        return roundTwoDecimals(canadian * canadianDollar);
    };
    exports.USToCanadian = function(us){            //USToCanadian也设定在exports中
        return roundTwoDecimals(us / canadianDollar);
    };

      使用这个模块要用到Node的require函数,该函数以你要使用的模块路径为参数,Node以同步的方式寻找他,定位到这个模块并加载文件中的内容。

      

      2、引入一个模块

    var currency = require('./currency');   //路径./表示模块跟程序脚本放在同一个目录下
    console.log('50 Canadian dollars equals this amount of Us dollars:');
    console.log(currency.canadianToUs(50)); //使用currency模块中canadianToUS函数
    
    console.log('30 US dollars equals this amount of Canadian dollars :');
    console.log(currency.USToCanadian(50)); //使用currency模块中USToCanadian函数

      

      3、用node_modules重用模块

      Node中有一个独特的模块引入机制,使用node_modules目录,可以不必只奥模块在文件系统中的具体位置。

      

      4、尽管Node模块系统的本质简单直接,但是还要有两点注意。

      第一、如果模块是目录,在模块目录中定义模块的文件必须被命令index.js。除非你在这个目录下一个叫package.json的文件里特别指明。 

      第二、Node能把模块作为对象缓存起来,如果程序重的两个文件引入了相同的模块,第一个文件会吧模块返回的数据存到程序的内存中,这样第二个文件就不用再去访问和计算模块的源文件了。实际上第二引入有机会修改缓存的数据。

       

  • 相关阅读:
    基于u盘身份验证
    新的一年开始了~!
    asp.net的条形码
    windows phone (21) Grid元素的Background和Clip
    windows phone (19) 深入了解TextBlock
    windows phone (25) Canvas元素B
    windows phone (20) Image元素
    windows phone (22) 隐藏元素
    windows phone (26) ApplicationBar应用程序栏
    windows phone (27) 基础Button
  • 原文地址:https://www.cnblogs.com/xz1024/p/5785894.html
Copyright © 2011-2022 走看看