【发布时间】: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