• node.js中的exports和module.exports的区别


    node.js中通过require()来引用其他文件,那如果想要被其他文件所引用,就得用到exports或者module.exports。

    首先,每个文件都会默认有一个module对象,测试一下

    console.log(module);

    结果是:

    { id: '.',
    exports: {},
    parent: null,
    filename: 'D:\mytest\test.js',
    loaded: false,
    children: [],
    paths:
    [ 'D:\mytest\test\node_modules',
    'D:\mytest\node_modules',
    'D:\node_modules' ] }

    别的我们不管,我们看到一个exports对象,其实别的文件通过require获得的正是这个module.exports对象,但是要明确一个关系就是exports属于module对象。

    所以,我们想要导出一个文件时,可以这么写:

    test.js

    function add(a,b){
        return a+b;    
    }
    
    module.exports = add;

    这样写呢,就是把exports对象给赋值为了add方法,也就是说,如果在本文件中再次module.exports会把之前的add方法覆盖掉,所以一般的一个文件中只会写一个module.exports。

    在别的文件引用这个文件的add方法可以这么写

    var add = require("./test.js");
    
    add(1,2);

    那么如果想导出多个方法或者对象怎么办呢,可以这么做

    test.js

    function add(a,b){
        return a+b;
    }
    
    var info = {
        name:"racyily",
        age:22
    };
    
    exports.add = add;
    exports.info = info;

    这时引用的时候要这么写

    var test = require("./test.js");
    
    test.add(1,2);
    
    console.log("名字:" + test.info.name + ",年龄:" +  test.info.age);

    这样就可以同时导出多个对象了,其实很简单,弄清楚每个文件会有默认有个module对象,module对象下面有个exports对象。别的文件通过require获得的都是那个文件的module.exports对象!

    所以,如果你怕搞混,你可以全部用exports.info = info;这个样的形式。

  • 相关阅读:
    python 数据类型 转换
    python 爬虫简单优化
    三种方式简单爬取图片
    爬虫简单入门:第一个简单爬虫
    python 数据结构 容器(字典,列表,元组,集合)
    蓝桥杯带分数(难)
    有几个水洼(DFS)
    蓝桥杯横向打印二叉树(不会,好难啊)
    输入不确定数量的数字
    闰年
  • 原文地址:https://www.cnblogs.com/racyily/p/3623357.html
Copyright © 2020-2023  润新知