Mongoose TypeError:不能在'中使用'运营商搜索' _id'在

时间:2015-03-30 15:07:16

标签: node.js backbone.js

我有一个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 );
  }
});

任何帮助都是最受欢迎的。另外,调试javascript的最佳做法是什么?进入控制台并钻进?是否有更好的调试器库可用于节点?

由于

1 个答案:

答案 0 :(得分:0)

我猜你的帖子数据JSON对象属性是错误的。我纠正后面临同样的问题,问题就消失了。

问题状态:

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

更正后:

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