美文网首页
NodeJs Module

NodeJs Module

作者: 卖梦想的男孩 | 来源:发表于2016-10-13 10:42 被阅读28次

    NodeJs简述

    NodeJs使用的标准是CommonJS,所以在NodeJs中文件就是一个模块。

    Node.js的模块分为两类,一类为原生(核心)模块,一类为文件模块。
    Node.提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块接口,即所获取模块的exports对象.

    NodeJs的加载

    NodeJs模块使用

    栗子:

    • 创建模块
    const NAME = 'kerison';
    
    function hi(name) {
        name = name || NAME;
        console.log('Hi ! ' + name);
    }
    
    function bye() {
        console.log('Goodbye !');
    }
    
    target = {
        NAME: NAME,
        hi: hi,
        bye: bye
    }
    
    //第一种
    // exports.NAME = NAME,
    // exports.hi = hi;
    // exports.bye = bye;
    
    //第二种
    // module.exports.NAME = NAME,
    // module.exports.hi = hi;
    // module.exports.bye = bye;
    
    //第三种
    // exports = target;
    
    //第四种
    // module.exports = target;
    
    exports = module.exports = target
    
    • 使用模块
    const hello = require('./src/test/hello');
    console.log(hello);
    
    • 结果
    // 1 ,2 4 
    { NAME: 'kerison', hi: [Function: hi], bye: [Function: bye] }
    //3
    {}
    
    • 分析

    模块的导出是通过exports向外暴露的,exports和module.exports默认都是指向一个对象的引用,所以直接在对象上做导出,两者都一样,如果重新赋值,相应的的引用就相应的做了修改,而module最终导出的module.exports所指向的引用,所以4有结果,3却没结果。

    • 疑问

    为啥设计一个exports呢,仅仅是方便导出吗?

    相关文章

      网友评论

          本文标题:NodeJs Module

          本文链接:https://www.haomeiwen.com/subject/fnrwyttx.html