微信开发之module.exports用法

常见用法:在data.js文件中定义  
  
var dataPost = {  
  "seller": {  
    "name": "粥品香坊",  
    "description": "蜂鸟专送",  
    "deliveryTime": 38,  
    "score": 4.2,  
    "serviceScore": 4.1,  
  },  
}  
  
module.exports={  
  myDataPost: dataPost   // 对外暴露的变量名叫myDataPost,对应着内部的dataPost对象   
}  
  
  
在index.js中调用:  
let Data = require('../../data/data.js'); // 引入公共代码  
var dataList = Data.myDataPost.seller;    // 开始通过对外暴露变量myDataPost,访问内部dataPost对象



微信开发中,可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。

需要注意的是:

  • 推荐开发者采用 module.exports 来暴露模块接口
  • 小程序目前不支持直接引入 node_modules , 开发者需要使用到 node_modules 时候建议拷贝出相关的代码到小程序的目录中。
// common.js
function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye

​在需要使用这些模块的文件中,使用 require(path) 将公共代码引入

var common = require('common.js')
Page({
  helloMINA: function() {
    common.sayHello('MINA')
  },
  goodbyeMINA: function() {
    common.sayGoodbye('MINA')
  }
})

Tips

  1. tip: require 暂时不支持绝对路径
  2. require 用来加载代码,而 exports 和 module.exports 则用来导出代码。


其他例子:

1、返回一个JSON Object

var app = {
    name: 'app',
    version: '1.0.0',
    sayName: function(name){
        console.log(this.name);
    }
}
module.exports = app;

这种方法可以返回全局共享的变量或者方法。 
调用方法:

var app = require('./app.js');
app.sayName('hello');//hello

或者这样用:

var func1 = function() {
   console.log("func1");
};

var func2 = function() {
   console.log("func2");
};

exports.function1 = func1;
exports.function2 = func2;

调用方法为:

var functions = require("./functions");
functions.function1();
functions.function2();

2、返回一个构造函数

CLASS.js:

var CLASS = function(args){
     this.args = args;
}
module.exports = CLASS;

调用:

var CLASS = require('./CLASS.js');
var c = new CLASS('arguments');

3、返回一个实例对象:

//CLASS.js
var CLASS = function(){
    this.name = "class";
}
CLASS.prototype.func = function(){
    alert(this.name);
}
module.exports = new CLASS();

调用:

var c = require('./CLASS.js');
c.func();//"class"


exports 和 module.exports 的区别

exports就是module.exports的引用

  1. module.exports 初始值为一个空对象 {}
  2. exports 是指向的 module.exports 的引用
  3. require() 返回的是 module.exports 而不是 exports



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值