MeteorJs的CodeMirror错误

时间:2016-08-09 18:34:40

标签: mongodb meteor codemirror

我正在使用meteorJs 1.4并尝试使用mizzao:sharejs-codemirror包但我在尝试使用时遇到此错误

  

无法获取tNvo2iHyPAamPeHAd的操作:MongoError:无法解析:   排序:" _id.v"。 '排序'字段必须是BSON类型的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>

有人可以向我解释这意味着什么。感谢。

4 个答案:

答案 0 :(得分:2)

我和你的问题完全相同,我正在使用Metero 1.4.2.3。 我使用 meteor reset 重置了我的项目,它对我有用! 一旦停止服务器,您将需要在运行之前重新重置它,否则您将获得MongoError。讨厌,但这是一种修复......: - (

答案 1 :(得分:0)

我运行你的代码并且sharejs-cm没有给我任何麻烦,我确实认为在你的客户端代码上你应该在条件中使用它之前将'myDocument'定义为变量,即使流星没有抱怨... javascript会接受你给它的任何东西,并且不会总是告诉你为什么它会失败。

var myDocument = Documents.findOne();

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

问候。

答案 2 :(得分:0)

我不确定这对你的情况是否完全有帮助,但显然Meteor 1.4和shareJS / CodeMirror存在一些问题(请查看回购以获取更多信息),所以这是一种解决方法。我正在运行Meteor 1.4并使用shareJS / CodeMirror构建一个应用程序,但我的代码镜像窗格/ div中的“加载...”却停滞不前(在Ubuntu上使用Firefox)。首先,我试过“流星重置”,但没有解决它。我尝试使用命令开关将Meteor作为以前的版本运行,但是MongoDB将无法启动。我尝试使用1.3.x创建一个项目并且仍然遇到同样的问题,但是当我使用1.2.1版本创建一个新的Meteor应用程序时,它工作正常并且CodeMirror窗格正常运行。

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

meteor create [appName] - release 1.2.1

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

答案 3 :(得分:0)

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

meteor update --all-packages

这对我有用。