美文网首页
【Nodejs笔记】nodejs入门简介_模块化

【Nodejs笔记】nodejs入门简介_模块化

作者: 李明燮 | 来源:发表于2022-05-31 18:20 被阅读0次

    这篇简单的整理了nodejs的模块化的内容。

    • 每一个js文件是一个模块。每个js文件其实是被一个函数包裹着
    • 引用文件需要require
    • 提供接口需要用export

    具体的内容直接看实例:

    md.js

    module.exports = {
        x: 10,
        fn: () => { console.log(arguments.callee + '') },
    }
    
    // exports.z = 30;
    
    var y = 20;
    console.log(y);
    
    

    test.js

    const md = require('./md.js');
    md.fn();
    
    
    //所有的模块都是函数,通过 console.log(arguments.callee + '') 方式可以查看函数的值。
    /*
    20          => 执行了md.js里的 console.log(y);
    function (exports, require, module, __filename, __dirname) {      =>执行了 console.log(arguments.callee + '')
    module.exports = {
        x: 10,
        fn: () => { console.log(arguments.callee + '') },
    }
    
    var y = 20;
    console.log(y);
    }
    */
    
    
    /*
    模块函数的参数,每个模块文件node都会包一个函数,而且传这4个参数
    exports: 通过该对象是对外报漏属性和方法
    require: 函数,引用模块
    module: 当前本身模块,exports是module的属性
    __filename:当前模块路径
    __dirname: 当前模块文件夹路径
    */
    
    var aa =10; //这是局部变量
    bb = 10; //这是全局变量
    
    console.log(global.aa); //undefined
    console.log(global.bb); //10
    
    
    /*
    exports 和 module.exports的区别:
    exports是模块的属性,module.exports是模块的方法,module.exports是模块的属性和方法的集合。
    */
    var obj = {}
    obj.a = {};
    var a = obj.a;
    console.log(a == obj.a); //true
    
    a.name = '小明';
    console.log(obj.a.name); //小明
    
    a = new Object();
    console.log(a.name); //undefined
    console.log(obj.a.name); //小明
    
    {
        //这是改的是module的属性的值
        module.exports = {
    
        }
        //这是改的是对象,直接新建对象值。所以这种方式无效,只能 exports.xxx = 
        exports = {
    
        }
    }
    

    欢迎大家的意见和交流

    email: li_mingxie@163.com

    相关文章

      网友评论

          本文标题:【Nodejs笔记】nodejs入门简介_模块化

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