Mongoose TypeError:不能使用'in'运算符来search中的'_id'

我有一位Rails开发者试图在骨干网上工作,并使用Backbone.js应用程序书 – 我的第一个Backbone / Node / Mongo应用程序,所以要温和一些。

我已经倾注了类似的问题,现在已经停留了12个小时,所以我认为是时候投入了。 错误在上面和下面

[TypeError: Cannot use 'in' operator to search for '_id' in YES PLEASE] 

我试图把一本书保存到图书馆,这是我的模式。

 var Keywords = new mongoose.Schema({ keyword: String }); var Book = new mongoose.Schema({ title: String, author: String, releaseDate: Date, keywords: [ Keywords ] }); 

当我做一个简单的Ajax文章,关键字得到显示和保存,但是当我尝试从视图添加它们,他们失败。 这是library.js视图。

 var app = app || {}; app.LibraryView = Backbone.View.extend({ el: "#books", events: { 'click #add': "addBook" }, initialize: function() { this.collection = new app.Library(); this.collection.fetch({reset: true}); this.render(); this.listenTo(this.collection, 'add', this.renderBook ); this.listenTo(this.collection, 'reset', this.render) }, render: function() { this.collection.each(function(item) { this.renderBook(item); }, this); }, renderBook: function(item) { var bookView = new app.BookView({ model: item }); this.$el.append(bookView.render().el ); }, addBook: function(e) { e.preventDefault(); var formData = {}; $('#addBook div').children('input').each(function( i,el ) { if( $( el ).val() != '' ) { if( el.id ==="kewords" ) { _.each( $(el).val().split(' '), function( keyword ){ formData[ el.id ].push({ 'keyword': keyword }); }); } else if ( el.id ==='releaseDate' ){ formData[ el.id ] = $("#releaseDate").datepicker('getDate').getTime(); } else { formData[ el.id ] = $( el ).val(); } } $( el ).val('') }); this.collection.create( formData ); } }); 

任何帮助将是最受欢迎的。 另外,什么是debuggingJavaScript的最佳做法? 进入控制台并钻井? 是否有一个更好的debugging器库使用节点?

谢谢

我猜你的发布数据JSON对象属性是错误的。 我纠正后面临同样的问题,问题就没有了。

发行状态:

  {"userId": "58821f9b1b059b515a53d44b","dashboard":"mobile_dashboard"} 

更正后:

 {"userId": "58821f9b1b059b515a53d44b","dashboard":{"title":"mobile_dashboard","viewData":{"className":"BuilderDroppableZone"}}}