【问题标题】:Unaware of why I am getting a 500 status express/jQuery post不知道为什么我会收到 500 状态快递/jQuery 帖子
【发布时间】:2018-05-12 06:48:43
【问题描述】:

我只是想用 jQuery 对表单做一些基本的前端验证,然后 $.post 到后端,后端会将它保存到我的数据库中。

这是我的前端代码 -

    $('#addContact').submit(function(event) {
      event.preventDefault();
      var contact = {};
      contact.firstName = $('#first_name').val().trim();
      contact.lastName = $('#last_name').val().trim();
      contact.company = $('#company').val().trim();
      contact.birthday = $('#birthday').val().trim();
      contact.twitterHandle = $('#twitter').val().trim();
      contact.interests = interests;
      console.log('posting', contact);

      $.post( "/addContact", contact)
        .done(function( data ) {
        alert( "Data Loaded: " + data );
      });
    });

在我的后端

    router.post('/addContact', function(req, res) {
      console.log('running post contact');
      var newContact = new Contact(temp);
      newContact.save(function(err, doc) {
        if(err) {
            console.log(err);
        } else {
            console.log('Added contact!');
            console.log(doc);
        }
     });
     res.end('It Worked');
    });

而且我不断收到 500 错误。我检查了前端,联系人对象与 db 模型完全匹配。不过,我在终端中确实注意到的一件事是控制台日志“running post contact”出现在记录器说“POST /addContact”之前,所以我不确定这是否表明正在发生一些奇怪的事情。我目前对为什么会发生这种情况一无所知。有什么想法吗?

【问题讨论】:

  • 你在用猫鼬吗?

标签: jquery forms express post


【解决方案1】:

您必须使用req.body 对象来检索提交的数据,然后您可以使用该数据创建一个新的猫鼬实例

这一行:

 var newContact = new Contact(temp);

改成:

 var newContact = new Contact(req.body);

【讨论】:

  • 你是对的,对我来说是非常愚蠢的错误。谢谢!这把我逼疯了,
猜你喜欢
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 2023-01-02
  • 2017-11-23
  • 2019-02-14
相关资源
最近更新 更多