2016-10-20 96 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