MeteorJs 的 CodeMirror 错误

CodeMirror error with MeteorJs

我正在使用 meteorJs 1.4 并尝试使用 mizzao:sharejs-codemirror 包但是当我尝试使用它时我总是收到这个错误

failed to get ops for tNvo2iHyPAamPeHAd: MongoError: Failed to parse: sort: "_id.v". 'sort' field must be of BSON type Object.

这是一些代码:服务器端

this.Documents = new Mongo.Collection("documents");

Meteor.startup(() => {
  if(!Documents.findOne()){
    Documents.insert({title:"new Document"});
  }
});

客户端:

this.Documents = new Mongo.Collection("documents");

Template.editor.helpers({
  docid:function(){
    myDocument = Documents.findOne();
    if(myDocument){
      return myDocument._id;
    }
    else{
      return undefined;
    }
  }
});

标记:

<head>
  <title>textcircle</title>
</head>

<body>
  <h1>welcome to textcircle</h1>

  {{> editor}}
</body>

<template name="editor">
  {{> sharejsCM docid=docid id="editor"}}
</template>

谁能给我解释一下这是什么意思。谢谢。

我 运行 你的代码和 sharejs-cm 没有给我带来任何麻烦,我认为你应该在你的客户端代码上定义 'myDocument' 作为变量,然后再在条件,即使 meteor 没有抱怨... javascript 会拿走你给它的任何东西,并且不会总是告诉你为什么它会失败。

var myDocument = Documents.findOne();

如果您仍然遇到问题,请更具体地说明所显示的错误。

此致。

我不确定这是否对您的情况完全有帮助,但显然 Meteor 1.4 和 shareJS / CodeMirror 存在一些问题(查看存储库以获取更多信息),因此这是一种解决方法。我正在 运行ning Meteor 1.4 并且还使用 shareJS / CodeMirror 构建了一个应用程序但是我的会卡在代码镜像窗格中的 "loading..." / div 并且无法进一步(在 Firefox 上使用Ubuntu)。首先,我尝试了 "meteor reset" 但没有解决问题。我尝试将 运行ning Meteor 作为带有命令开关的先前版本,但 MongoDB 将无法启动。我尝试使用 1.3.x 创建一个项目,但仍然遇到同样的问题,但是当我创建一个新的 Meteor 应用程序版本 1.2.1 时,它工作正常并且 CodeMirror 窗格正常工作。

要创建新的 Meteor 1.2.1 应用程序,运行:

meteor create [appName] --release 1.2.1

为了让它正常运行,我从我的 1.4 应用程序复制了我的客户端和服务器文件,并删除了自动生成的文件。我注释掉了导入语句,但除此之外它非常顺利。只需添加您正在使用的包,您很可能必须添加会话,但这应该会让您起床 运行ning。

我遇到的问题与您的完全相同,我使用的是 Metero 1.4.2.3。 我使用 meteor reset 重置了我的项目,它对我有用! 一旦你停止你的服务器,你将需要在 运行 之前再次重置它,否则你会得到那个 MongoError。烦人,但它是一种修复...... :-(

此错误与您在应用程序中使用的流星版本有关。基本上是版本不匹配。在您的命令提示符中尝试 运行 此代码。

流星更新--all-packages

这对我有用。