2016-10-20 120 views
0

我試圖從客戶端更新記錄,但不斷收到錯誤。試圖把所有東西都放入一個data = {}對象中,並將其傳遞給我的Meteor.call方法,但仍然無法使其工作。修飾符無效,修飾符必須是對象錯誤

瀏覽器errorClass {error: 500, reason: "Internal server error", details: undefined, message: "Internal server error [500]", errorType: "Meteor.Error"}

服務器Exception while invoking method 'updateComment' Error: Invalid modifier. Modifier must be an object.

我知道這與我如何打電話給我updateComment方法來做。有人會介意以正確的方向指引我。

在此先感謝。

當前代碼:

的意見/ methods.js

updateComment: function (commentId, commentContent, userId, fritkotId) { 
    // check(commentId, String); 
    // check(commentContent, String); 
    // check(userId, String); 
    // check(firtkotId, String); 
    Comments.update({ 
      _id: commentId, 
      body: commentContent, 
      author: userId, 
      fritkotId: fritkotId, 
      modifiedAt: new Date() 
     }); 
}.... 

editComment.js

import './editComment.tpl.jade' 

// Events 
Template.editComment.events({ 
'click .form-save': (e) => { 

    e.preventDefault(); 

    let data = {}; 

    let commentContent = $('.update-comment').val(); 

    let fritkotId = Fritkots.findOne({})._id; 
    let commentId = Comments.findOne({})._id; 
    let userId = Meteor.userId(); 

    // data.commentId = commentId; 
    // data.commentContent = commentContent; 
    // data.userId = userId; 
    // data.fritkotId = fritkotId; 

    console.log(` This is the commentId: ${commentId}, userId: ${userId}, fritkotId: ${fritkotId}`); 

    Meteor.call('updateComment', commentId, commentContent, userId, fritkotId, function(error) { 
     if (!error) { 
      console.log('comment updated'); 
     } else { 
      console.log(error); 
      console.log('unable to update comment'); 
     } 
    }) 

    console.log(`The comment was updated to this ${commentContent}`); 

    console.log('I was clicked for save'); 

    // Session.set('editCommentId', false); 
    Session.set('editCommentId', null); 
}, 
.... 

收藏/ comments.js

Comments = new Mongo.Collection('comments') 

// Permissions 
Comments.allow({ 
    insert:() => false, 
    // update: (userId, doc) => { return !! userId; }, 
    update:() => false, 
    remove:() => false 
}); 

Comments.deny({ 
    insert:() => true, 
    update:() => true, 
    // update: (userId, doc) => { return !! userId; }, 
    remove:() => true 
}); 

回答

1

您需要找到一種方法來識別評論,然後傳遞您想要更改的部分。使用.update()(檢查文檔)肯定存在問題。

我相信你想是這樣的:

Comments.update(id, {$set: {key: value}}) 

或本

Comments.update(id, {$set: {key: value}}) 
+0

感謝的是解決了這個問題。 – intercoder