• Exploring Modules


    • Working with module.exports

    当我们有很多个js文件时,在使用node的时候,我们可以定义选择js文件里的那些东西是可以共享给其他的js文件,而哪些东西不可以,可以require code from other files/modules, 例如文件系统module。

    在一个新的js文件中require我们已经定义好function的math.js文件: 

    const math = require('./math');
    console.log(math); //. output: {}

    这个时候我们不能从math.js中得到任何东西,因为math.js里面没有指定可以shared的东西,这个时候我们需要使用module.exports

    //math.js
    
    const add = (x, y) => x + y;
    
    const PI = 3.14159;
    
    const square = x => x * x;
    
    module.exports.add = add;
    module.exports.PI = PI;
    module.exports.square = square;
    

     第二种方式:整组object一起

    const add = (x, y) => x + y;
    
    const PI = 3.14159;
    
    const square = x => x * x;
    
    
    const math = {
        add: add,
        PI: PI,
        square: square
    }
    
    module.exports = math;

     第三种方式:定义的时候

    module.exports.add = (x, y) => x + y;
    module.exports.PI = 3.14159;
    module.exports.square = x => x * x;

    更简单的方式:

    const add = (x, y) => x + y;
    
    const PI = 3.14159;
    
    const square = x => x * x;
    
    exports.add = add;
    exports.square = square;
    exports.PI = PI;
    //app.js
    
    const { add, PI, square } = require('./math');
    console.log(add(1, 2))
    console.log(PI)
    console.log(square(9))

    • Requiring a directory
    • //blue.js
      module.exports = {
          name: 'blue',
          color: 'grey'
      }
      
      //janet.js
      module.exports = {
          name: 'janet',
          color: 'orange'
      }
      
      //Sadie.js
      module.exports = {
          name: 'sadie',
          color: 'black'
      }
      
      //index.js
      const blue = require('./blue')
      const sadie = require('./sadie')
      const janet = require('./janet')
      
      const allCats = [blue, sadie, janet]
      
      module.exports = allCats;

      outside the shelter folder, we have a app.js want to access to the shelter folder:

    • const cats = require('./shelter')
      
      console.log("REQUIRED AN ENTIRE DIRECTORY!", cats)

  • 相关阅读:
    NOI2015 品酒大会
    BJOI2017 喷式水战改
    代码注释
    mysql zip 安装 和 修改密码
    Jrebel 永久免费激活步骤
    layui 在springboot2.x 时,页面展示不了layui的问题
    最小生成树
    loj 10117 简单题(cqoi 2006)
    vijos 1512 SuperBrother打鼹鼠
    vijos 清点人数
  • 原文地址:https://www.cnblogs.com/LilyLiya/p/14351511.html
Copyright © 2020-2023  润新知