alexandrknyazev13071995
@alexandrknyazev13071995

Почему на meteor.js не работает код без проверки с помощью пакета check?

Есть следующий код в 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 - это лишь проверка.
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы