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

  • 相关阅读:
    SpringBoot学习笔记
    2021牛客多校第一场 I题(DP)
    CSS小结
    AOP小结
    IOC容器小结
    Educational Codeforces Round 56 (Rated for Div. 2) G题(线段树,曼哈顿距离)
    Codeforces Round #656 (Div. 3) E. Directing Edges(拓扑排序)
    Educational Codeforces Round 101 (Rated for Div. 2) E
    [FJOI2017]矩阵填数 (容斥原理)
    优秀代码样板收集计划(python)
  • 原文地址:https://www.cnblogs.com/asituhaitang/p/8808147.html
Copyright © 2011-2022 走看看