• 简要介绍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');

  • 相关阅读:
    浏览器漫谈
    无尽的烦恼
    微软的无聊
    作软件的人永远都是受气包吗?
    除非迫不得已不要用游标
    公司进行改革,路该如何走?
    Performance best practices for Web services
    HowTO: Create an Event Log Source in code, without the Permission errors
    Team Foundation Server安装指南
    百年不遇的,我遇到了两次
  • 原文地址:https://www.cnblogs.com/asituhaitang/p/8808147.html
Copyright © 2020-2023  润新知