Meteor中的自定义脚本

Custom script in Meteor

本文关键字:脚本 自定义 Meteor      更新时间:2023-09-26

我刚开始玩流星,我测试了一些东西。基于Meteor指南,我测试了以下代码,以了解编写包的最佳方式,但我从未成功。以下代码有什么问题,以及为Meteor应用程序编写包的好方法(如果不是全部,但至少有几个好方法)是什么,这些包可以放在lib文件夹中。

/lib/exports.js

if (org === void 0){
    var org = {}
}
if(bjse === void 0){
    var bjse = {};
    if(typeof exports != "undefined"){
        bjse = exports;
    }
    bjse.api = {};
}

/lib/file1.js

//mypackage.js

bjse.api.Whirlygig = function (name) {
  var self = this;
  self.name = name;  // name of the remote weasel
  self.values = {};  // remote key name -> 0-indexed value
};
_.extend(Whirlygig.prototype, {
  // Take a key/value pair from the remote Weasel and save it locally.
  addValue: function (x) {
    // Weasels use 1-indexed arrays. Subtract 1 to convert to 0-indexed.
    self.values[x.key] = x.value - 1;
  },
  // Return a list of stored values in a format suitable for sending to
  // a Weasel.
  serialize: function () {
    return _.map(self.values, function (v, k) {
      var newVal = mungeValue(v, false /* foldValue */);
      // Weasels use 1-indexed arrays. Add 1 to convert back to 1-indexed.
      newVal = newVal + 1;
      return {key: k, value: newVal};
    });
  }
});

/服务器/方法.js

Meteor.methods({
    createConnections: function(){
  ....
 var serializeObj = bjse.api.Whirlygig.serialize(..);

但我没有定义Whirlygig。

更新

我想使用bjse作为名称空间,但它总是显示为未在其他文件中定义。

exports中,您需要:

if (typeof(org) === 'undefined'){
    var org = {}
}
if(typeof(bjse) === 'undefined'){
    var bjse = {};
    if(typeof exports != "undefined"){
        bjse = exports;
    }
    bjse.api = {};
}