zoukankan      html  css  js  c++  java
  • 简要介绍Node中的模块

    在开发过程中,为了方便编写和维护代码,我们把函数分组分别放在不同文件里面。在Node环境中,一个js文件就是一个模块(module),这样做最大的好处就是大大提高了代码的可维护性,其次是提高代码的可复用性,而且使用模块还可以避免函数名和变量名的冲突。
    首先创建一个A.js

    'use strict';
    
    var h = 'Hello';
    
    function greet(name) {
        console.log(h + ', ' + name + '!');
    }
    
    module.exports = greet;

    函数greet()是在A模块中定义的,如果要在其他模块中调用这个方法的话怎么办呢?其实答案就是最后一行代码,它把函数greet()作为模块的输出暴露出去,使其他模块可以调用这个方法。
    那么接下来的问题是其他模块是如何调用函数greet()的呢?
    创建一个B.js的文件

    'use strict';
    
    // 引入hello模块:
    var greet = require('./A');
    
    var h = 'A-Module';
    
    greet(h); // Hello, A-Module!
    

      

    通过Node提供的require函数来引入A模块

    var greet = require('./A')

    引入的A模块作为变量存储在变量greet中,而A模块暴露出来的方法正是函数greet();所以模块B(B.js)就成功引用了模块A中的greet()方法,然后就可以直接使用这个方法了。
    使用require引入模块时候,要注意模块的相对路径,Node会依次在内置模块、全局模块和当前模块中查询你引入的模块名,如果在此过程中程序报错,请务必要检查模块名是否正确,模块文件是否存在,相对路径是否正确。
    以上这种模块加载机制被称为CommonJS规范。
    在这个规范下,每个js文件都是一个模块,它们内部各自使用的变量名和函数名都互不冲突。一个模块想要对外暴露变量(函数),可以使用module.export = variable;一个模块想要引用其他模块暴露的变量(函数)可以使用var ref = require('module_name');

  • 相关阅读:
    co coa ch ina
    提高英语听力最好的学习方法
    http://www.funnygames.us/search/?s=balance
    flash
    https://github.com/search?l=ObjectiveC&p=2&q=cocos&ref=searchbar&type=Repositories
    game.m https://github.com/kayrules/Cocos2dEndlessPlatformerGame
    2013年下半年学习计划
    Javascript判断数据类型
    vue组件自定义属性命名
    BZOJ 1018 线段树维护连通性
  • 原文地址:https://www.cnblogs.com/asituhaitang/p/8808147.html
Copyright © 2011-2022 走看看