美文网首页
nodejs exports 和 module.exports

nodejs exports 和 module.exports

作者: _不能说的秘密i | 来源:发表于2019-03-19 13:16 被阅读0次

    这应该是基础的内容了, 但是写 vue 写多了(ES6),慢慢的..我居然老想用ES6的语法来写nodejs(CommonJS)...,记录一下

    首先做个实现就知道是怎么回事了

    1.就写这一行代码,运行查看结果

    console.log(module);
    
    运行结果
    {
        id: '.',
        exports: {},
        parent: null,
        filename: 'C:\\Users\\Administrator\\Desktop\\study\\index.js',
        loaded: false,
        children: [],
        paths: [
            'C:\\Users\\Administrator\\Desktop\\study\\node_modules',
            'C:\\Users\\Administrator\\Desktop\\node_modules',
            'C:\\Users\\Administrator\\node_modules',
            'C:\\Users\\node_modules',
            'C:\\node_modules'
        ]
    }
    
    1. 我们可以会得到这样一个对象, 那么 module 是哪里来的?
      在 nodejs 中, 一个模块就是一个闭包, 大概是这样一个结构, 所以我们不需要定义就可以直接使用 modeulexports
    (function (module, exports) {
      // code
    })();
    

    区别

    console.log(module) 运行结果的代码中,可以看到 exportsmodule 的一个属性

    1. 如果使用 module.exports = {} 这是将系统的 exports 重新赋值了
    module.exports = {
      name: 'jack',
      message: 'hello world'
    };
    
    1. 如果使用 exports.aaa = 'bbb' 这是将 bbb 赋值给 exportsaaa 属性
    exports.fun1= () => {
      console.log("hello");
    }
    
    exports.fun2= () => {
      console.log("world");
    }
    

    相关文章

      网友评论

          本文标题:nodejs exports 和 module.exports

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