2016-08-09 4 views
0

Я использую meteorJs 1,4 и пытаюсь использовать mizzao:sharejs-codemirror пакет, но я получаю эту ошибку, когда я пытаюсь использовать егоCodeMirror ошибка с MeteorJs

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> 

Может кто-нибудь, пожалуйста, объясните мне, что это значит. Благодарю.

+0

могли бы вы добавить некоторые фрагменты кода? – richin

+0

У меня такая же ошибка, если я обновляю свои документы. Я попытался решить проблему, используя следующую команду: meteor reset – kifcaliph

ответ

0

Я не уверен, что это полностью поможет в вашем случае, но, видимо, есть некоторые проблемы с Meteor 1.4 и shareJS/CodeMirror (проверьте репо за дополнительной информацией), так что это обходной путь. Я запускал Meteor 1.4, а также создавал приложение, использующее shareJS/CodeMirror, но мой бы застрял на «загрузке ...» в зеркальной панели/div кода и не стал дальше (используя Firefox на Ubuntu). Во-первых, я попробовал «сброс метеоров», но это не исправить. Я попробовал запустить Meteor как предыдущую версию с помощью командного переключателя, но MongoDB не запустился. Я попытался создать проект вместо 1.3.x и по-прежнему имел ту же проблему, но когда я создал новое приложение Meteor с версией 1.2.1, он работал, и панель CodeMirror была функциональной.

Чтобы создать новое приложение Meteor 1.2.1, запустите:

метеор создать [APPNAME] --release 1.2.1

Чтобы получить его и полазить, я над скопировал клиентские и серверные файлы из моего приложения 1.4 и удалил автоматически сгенерированные файлы. Я прокомментировал инструкции импорта, но кроме этого это было довольно гладко. Просто добавьте пакеты, которые вы используете, и вам нужно будет добавить сессию, скорее всего, но это должно заставить вас работать и работать.

0

Я запустил ваш код, и sharejs-cm не дал мне никаких проблем. Я думаю, что на вашем клиентском коде вы должны определить «myDocument» как переменную, прежде чем использовать ее в состоянии, хотя метеорит не имеет значения, t жалуются ... javascript возьмет все, что вы ему даете, и не всегда будет говорить вам, почему он терпит неудачу, когда он это делает.

var myDocument = Documents.findOne(); 

Если у вас по-прежнему возникают проблемы, будьте более конкретными с отображаемыми ошибками.

С уважением.

2

У меня была такая же проблема, как у вас, и я использую Metero 1.4.2.3. Я сбрасываю свой проект, используя meteor reset, и это сработало для меня! Как только вы остановите свой сервер, вам нужно будет сбросить его снова, прежде чем запускать в противном случае вы получите это MongoError. Раздражающий, но это своего рода исправление ... :-(

0

Эта ошибка имеет какое-то отношение к версии метеорита, который вы используете в своем приложении. В основном это несоответствие версии. Попробуйте запустить этот код в командной строке.

обновление метеор --all-пакеты

Это работает для меня.

+0

Вы должны отредактировать свой ответ, чтобы команда находилась в блоке кода, например. внутри обратных тиков: ' – JChrist

Смежные вопросы