Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Open source 如何修改正在运行的流星(陨石)?_Open Source_Meteor_Meteorite - Fatal编程技术网

Open source 如何修改正在运行的流星(陨石)?

Open source 如何修改正在运行的流星(陨石)?,open-source,meteor,meteorite,Open Source,Meteor,Meteorite,开源项目的好处之一是,您可以打开代码,查看它的功能,甚至对其进行修改,以帮助您深入理解 如何修改meteor(ite)的基本代码,以便插入自己的控制台日志语句来查看代码的工作方式?我将应用程序作为meteorite应用程序运行(mrt) 我尝试过但没有成功的事情: *编辑我的流星源树 *编辑我的陨石源树 *编辑/myApp/.meteor/local/build 其他详情: 我的特定用例(虽然答案应该比回答这个更一般)是,我得到了一个错误“队列任务中的异常:错误:Meteor当前不支持Objec

开源项目的好处之一是,您可以打开代码,查看它的功能,甚至对其进行修改,以帮助您深入理解

如何修改meteor(ite)的基本代码,以便插入自己的控制台日志语句来查看代码的工作方式?我将应用程序作为meteorite应用程序运行(
mrt

我尝试过但没有成功的事情: *编辑我的流星源树 *编辑我的陨石源树 *编辑/myApp/.meteor/local/build

其他详情: 我的特定用例(虽然答案应该比回答这个更一般)是,我得到了一个错误“队列任务中的异常:错误:Meteor当前不支持ObjectID以外的对象作为id”,并希望console.log该id是什么(即,如果它不是ObjectID,那么它是什么?)

以下是全部错误:

I20130826-10:36:36.038(-6)? Exception in queued task: Error: Meteor does not currently support objects other than ObjectID as ids
I20130826-10:36:36.039(-6)?     at Function.LocalCollection._idStringify (packages/minimongo/minimongo.js:845)  
I20130826-10:36:36.039(-6)?     at _.extend._nextObject (packages/mongo-livedata/mongo_driver.js:549) 
I20130826-10:36:36.039(-6)?     at _.extend.forEach (packages/mongo-livedata/mongo_driver.js:570)  
I20130826-10:36:36.039(-6)?     at _.extend.getRawObjects (packages/mongo-livedata/mongo_driver.js:621) 
I20130826-10:36:36.039(-6)?     at _.extend._pollMongo (packages/mongo-livedata/mongo_driver.js:897)  
I20130826-10:36:36.040(-6)?     at Object._.extend._unthrottledEnsurePollIsScheduled [as task] (packages/mongo-livedata/mongo_driver.js:841)  
I20130826-10:36:36.040(-6)?     at _.extend._run (packages/meteor/fiber_helpers.js:144)  
I20130826-10:36:36.040(-6)?    at _.extend._scheduleRun (packages/meteor/fiber_helpers.js:122)
在myApp/目录中的以下文件中找到错误消息:

  • .//.meteor/local/build/programs/client/packages/minimongo.js
  • .//.meteor/local/build/programs/client/packages/minimongo.js.map
  • .//.meteor/local/build/programs/ctl/packages/minimongo.js
  • .//.meteor/local/build/programs/ctl/packages/minimongo.js.map
  • .//.meteor/local/build/programs/server/packages/minimongo.js
  • .//.meteor/local/build/programs/server/packages/minimongo.js.map
和~/.流星

  • .//packages/minimongo/2c0b2ba53f/browser/packages/minimongo.js
  • .//packages/minimongo/2c0b2ba53f/browser/packages/minimongo.js.map
  • .//packages/minimongo/2c0b2ba53f/os/packages/minimongo.js
  • .//packages/minimongo/2c0b2ba53f/os/packages/minimongo.js.map
  • .//packages/minimongo/80c0a81364a8a504110b56f3e9a2cba2d4e731ee/minimongo.js

看起来你在问一些问题,所以让我将其分解为不同的答案:

修改流星

这取决于你想怎么做。如果您将其中一个包放在并将其放入您的
/packages
文件夹中,然后运行

meteor add packagename
其中,packagename是包的名称。这个软件包将覆盖meteor,并允许您在修改代码时使用它

如果您想更改meteor本身,使其也影响所有其他项目,则需要在
~/.meteor
下查找最新版本

如果修改项目的
.meteor
目录中的文件,则
~/.meteor
中的文件将覆盖它们,您将看不到所做的更改

我建议最好使用第一种样式,因为它不会干扰您的其他meteor项目

修改陨石

当谈到陨石时,你们可以使用git克隆的。这将允许您将其用作npm模块,同时还允许您修改代码以查看其在引擎盖下的工作情况

错误

Meteor允许您使用两种类型的
\u id
,一个ObjectID via或一个字符串(只要它是唯一的,并且通常看起来像
Random.id()
给出的内容)


如果您跟踪跟踪,看起来您正试图使用一个集合,其中
\u id
既不是ObjectID也不是字符串。如果您以某种方式在meteor之外创建了集合,则可能会发生这种情况。若要通过此错误,请在meteor之外修改您的集合,并使用字符串或ObjectID

I看起来你在问一些问题,所以让我把它分解成不同的答案:

修改流星

这取决于您想如何操作。如果您在上取下其中一个软件包,并将其放置在您的
/packages
文件夹中,然后运行

meteor add packagename
其中,packagename是包的名称。此包将覆盖meteor,并允许您在修改代码时使用它

如果您想更改meteor本身,使其也影响所有其他项目,则需要在
~/.meteor
下查找最新版本

如果修改项目的
.meteor
目录中的文件,则
~/.meteor
中的文件将覆盖它们,您将看不到所做的更改

我建议最好使用第一种样式,因为它不会干扰您的其他meteor项目

修改陨石

当谈到Meteorite时,你可以使用它的git克隆。这将使你可以将它用作npm模块,同时还可以修改代码以查看它在引擎盖下是如何工作的

错误

Meteor允许您使用两种类型的
\u id
,一个ObjectID via或一个字符串(只要它是唯一的,并且通常看起来像
Random.id()
给出的内容)


如果您跟踪跟踪,看起来您正试图使用一个集合,其中
\u id
既不是ObjectID也不是字符串。如果您以某种方式在meteor之外创建了集合,则可能会发生这种情况。若要通过错误,请在meteor之外修改您的集合,并使用字符串或ObjectID

a在回答与我收到的错误信息相关的细节时,@Akshat的回答对于一般用途的“修改流星”是正确的

我的错误:

I20130826-10:36:36.038(-6)? Exception in queued task: Error: Meteor does not currently support objects other than ObjectID as ids
I20130826-10:36:36.039(-6)?     at Function.LocalCollection._idStringify (packages/minimongo/minimongo.js:845)  
I20130826-10:36:36.039(-6)?     at _.extend._nextObject (packages/mongo-livedata/mongo_driver.js:549) 
I20130826-10:36:36.039(-6)?     at _.extend.forEach (packages/mongo-livedata/mongo_driver.js:570)  
I20130826-10:36:36.039(-6)?     at _.extend.getRawObjects (packages/mongo-livedata/mongo_driver.js:621) 
I20130826-10:36:36.039(-6)?     at _.extend._pollMongo (packages/mongo-livedata/mongo_driver.js:897)  
I20130826-10:36:36.040(-6)?     at Object._.extend._unthrottledEnsurePollIsScheduled [as task] (packages/mongo-livedata/mongo_driver.js:841)  
I20130826-10:36:36.040(-6)?     at _.extend._run (packages/meteor/fiber_helpers.js:144)  
I20130826-10:36:36.040(-6)?    at _.extend._scheduleRun (packages/meteor/fiber_helpers.js:122)
Minimongo检查对象以尝试并决定如何使用以下代码将其字符串化请参见调用_looksLikeObjectID(id):

myApp/packages/minimongo/minimongo.js

LocalCollection._idStringify = function (id) {
  if (id instanceof LocalCollection._ObjectID) {
    return id.valueOf();
  } else if (typeof id === 'string') {
    if (id === "") {
      return id;
    } else if (id.substr(0, 1) === "-" || // escape previously dashed strings
               id.substr(0, 1) === "~" || // escape escaped numbers, true, false
               LocalCollection._looksLikeObjectID(id) || // escape object-id-form strings
               id.substr(0, 1) === '{') { // escape object-form strings, for maybe implementing later
      return "-" + id;
    } else {
      return id; // other strings go through unchanged.
    }
  } else if (id === undefined) {
    return '-';
  } else if (typeof id === 'object' && id !== null) {
    throw new Error("Meteor does not currently support objects other than ObjectID as ids");
  } else { // Numbers, true, false, null
    return "~" + JSON.stringify(id);
  }
};
LocalCollection._looksLikeObjectID = function (str) {
  return str.length === 24 && str.match(/^[0-9a-f]*$/);
};
myApp/packages/minimongo/objectid.js

LocalCollection._idStringify = function (id) {
  if (id instanceof LocalCollection._ObjectID) {
    return id.valueOf();
  } else if (typeof id === 'string') {
    if (id === "") {
      return id;
    } else if (id.substr(0, 1) === "-" || // escape previously dashed strings
               id.substr(0, 1) === "~" || // escape escaped numbers, true, false
               LocalCollection._looksLikeObjectID(id) || // escape object-id-form strings
               id.substr(0, 1) === '{') { // escape object-form strings, for maybe implementing later
      return "-" + id;
    } else {
      return id; // other strings go through unchanged.
    }
  } else if (id === undefined) {
    return '-';
  } else if (typeof id === 'object' && id !== null) {
    throw new Error("Meteor does not currently support objects other than ObjectID as ids");
  } else { // Numbers, true, false, null
    return "~" + JSON.stringify(id);
  }
};
LocalCollection._looksLikeObjectID = function (str) {
  return str.length === 24 && str.match(/^[0-9a-f]*$/);
};
该对象确实是在meteor之外构建的(正如@Akshat所怀疑的),因为我正在从API中水合一个对象。该对象有一个名为“长度”的值,它确实小于24。这导致它脱离了“字符串”样式的解释,并进入