我只是尝试使用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模型完全匹配。我在终端中注意到的一件事是,在记录器显示“POST / addContact”之前,控制台日志“运行后联系”出现,所以我不确定这是否表明发生了奇怪的事情。我目前还不知道为什么会发生这种情况。有什么想法吗?
答案 0 :(得分:0)
您必须使用req.body
对象才能检索提交的数据,然后您可以使用此数据创建新的猫鼬实例
这一行:
var newContact = new Contact(temp);
将其更改为:
var newContact = new Contact(req.body);