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');

  • 相关阅读:
    openfl使用64位的ndk时,编译报错的问题!
    Haxe是何物?
    jsp中如何判断el表达式中的BigDecimal==0
    如何在springmvc的请求过程中获得地址栏的请求
    【原创】【滑块验证码】
    【原创】【aes加密】
    【原创】【qrcodejs2】生成二维码
    【原创】【ueditor】监听内容
    【原创】【ueditor】内容过多时 菜单控件遮挡页面
    js杂谈
  • 原文地址:https://www.cnblogs.com/asituhaitang/p/8808147.html
Copyright © 2011-2022 走看看