【问题标题】:MeteorJS - Error invoking Method 'updatePostData': Internal server error [500]MeteorJS - 调用方法“updatePostData”时出错:内部服务器错误 [500]
【发布时间】:2015-10-27 06:49:21
【问题描述】:

大家好,我现在正在研究 MeteorJS,我似乎无法更新集合。我得到了错误:

调用方法“updatePostData”时出错:内部服务器错误 [500]

这是我的客户端代码:

Template.my_posts.events({
'submit #pupdate': function(event) {
            event.preventDefault();
            var currentUserId = Meteor.userId();
            var pauthor = event.target.updateauthor.value;
            var ptitle = event.target.updatetitle.value;
            var pcontent = event.target.updatecontent.value;
            var pdate_pub = new Date()

            console.log(pauthor);
            console.log(ptitle);
            console.log(pcontent);
            console.log(currentUserId);
            console.log(pdate_pub);
            Meteor.call('updatePostData',ptitle,pcontent,pdate_pub,currentUserId,pauthor);
        }
});

这是我的服务器端代码:

Meteor.methods({
'updatePostData': function(ptitle,pcontent,pdate_pub,currentUserId,pauthor) {
            var selPostId = Session.get('selPostId');
            webPost.update(selPostId, {$set: {
                title: ptitle,
                content: pcontent,
                p_author: pauthor,
                date_pub: pdate_pub,
                author_id: currentUserId
            }});
        }
});

请帮忙,谢谢

【问题讨论】:

  • 如果您查看服务器日志,您可能会发现一条消息说Session 对象在服务器端不可用。您应该将 selPostId 作为显式参数传递给您的方法,或者使用一些与数据库相关的存储来即时检索它。
  • @apendua - 是的,它说“会话未定义”,让我尝试使用 this._id 代替会话。
  • 仍然无法正常工作,我已尝试在服务器端再次重新声明会话但无法正常工作:(
  • 我想我明白了,会话只在客户端工作。 . . hhhmmm 我想知道如何在服务器端传递它以便我可以使用它。 . .

标签: javascript meteor


【解决方案1】:

我终于想通了!!哈哈哈。 .在客户端声明会话,然后将其传递给meteor.call,然后调用服务器中的变量

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多