Есть следующий код в Meteor.js - по событию submit вызывается метод postInsert
Template.postSubmit.events({
'submit form': function(e) {
e.preventDefault();
var post = {
url: $(e.target).find('[name=url]').val(),
title: $(e.target).find('[name=title]').val()
};
Meteor.call('postInsert', post, function(error, result) {
// отобразить ошибку пользователю и прерваться
if (error)
return alert(error.reason);
Router.go('postPage', {_id: result._id});
});
}
});
Вот код метода PostInsert:
Meteor.methods({
postInsert: function(postAttributes) {
check(Meteor.userId(), String);
check(postAttributes, {
title: String,
url: String
});
var user = Meteor.user();
var post = _.extend(postAttributes, {
userId: user._id,
author: user.username,
submitted: new Date()
});
var postId = Posts.insert(post);
return {
_id: postId
};
}
});
Код работает, но если закомментировать первые две функции check:
/*check(Meteor.userId(), String);
check(postAttributes, {
title: String,
url: String
});*/
Код перестает работать - вываливается Internal Server Error. Почему так происходит? Насколько я понимаю, check - это лишь проверка.