2015-05-25 177 views
1

我正在使用node.js和mongoose編寫代碼,我在發佈材料的問題上陷入困境,材料是我的實體。「路徑」無效。必須是字符串或數組mongoose

以下是架構:

new Schema({ 
      title: { 
       type: String, 
       trim: true, 
       set: util.ucfirst, 
       required: true 
      }, 
      description: { 
       type: String, 
       required: true, 
       trim: true 
      }, 
      downloads:{ 
       type: Array, 
       default: [], 
       required: true 
      }, 
      course_id: { 
       type: String, 
       required: false 
      }, 
      _status: { 
       required: false, 
       default: true, 
       type: Boolean, 
       select: false 
      }, 
      created_by:{ 
       type: String 
      }, 
      created_at:{ 
       type: Date, 
       default: Date.now 
      }, 
      modified_by:{ 
       type: String 
      }, 
      modified_at:{ 
       type: Date, 
       default: Date.now 
      } 
     }, 
     { 
      collection: collection, 
      versionKey: true, 
      strict: true 
     }) 

現在用這個數據我張貼,它接受2「串」和1個或多個「文件」數據的樣本數據。

以下是帖子的API調用:

exports.post('/', function(req,res,next){ 
    var _error = req.mydata.get('error'); 
    if(!_error){ 
     var _object = req.mydata.get('data') || {}, 
      _files = req.mydata.get('files');  
     _object.downloads = (_files && Array.isArray(_files['upload'])) ? _files['upload'] : (_files && typeof _files['upload'] == "object") ? [_files['upload']] : []; 
     model.insert(_module, _object, function(err, entry){ 
      if(!err && entry){ 
       res.status(200).json(entry); 
       res.end(); 
      }else{ 
       next(); 
      } 
     }); 
    }else{ 
     next(_error); 
    } 
}); 

但是我收到的是下面的輸出,這是不預期。 enter image description here

回答

1

我剛碰到同樣的問題。您不能將versionKey設置爲true,Mongoose認爲它是版本密鑰的新名稱 - 應該是一個字符串。只要省略versionKey參數,你就會好起來的。

我爲此打開了一個問題:https://github.com/Automattic/mongoose/issues/3747

相關問題