Я пытаюсь использовать Ajax для продвижения сообщения. В дополнение к отправке данных upvote, я хочу отправить идентификатор сообщения, чтобы в конечном итоге использовать findOneAndModify из mongoose для таргетинга этой конкретной должности и повышения на 1. По какой-то причине я могу использовать ajax для продвижения определенной должности, но отправка идентификатора объекта обратно на сервер не работает.Почему мой вызов ajax обрабатывает только часть данных, которые я отправляю на свой сервер?
вот мой JADE код клиента
each post in posts
.media.white.paddingBoxForPost
.media-left.media-middle
a.removeTextDeco(href=post.link, target='_blank')
img.media-object(src=post.img, alt='facebook logo')
.media-body
a.removeTextDeco(href=post.link, target='_blank')
div#mainTitlePost.media-heading.postTitleFont= post.title
div#mainShortDesc.descriptionFont= post.description
form(method="post")
label(for='upvote')
.form-group
select#mainPostId.postIdentity.hidePostId.form-control(name='upvote')
option= post._id
button.upvoteClick.btn.btn-lg.btnColor(type='submit')
span.glyphicon.glyphicon-fire 3
button.btn.btn-lg.btnColor(type='submit')
span.glyphicon.glyphicon-comment
И вот мой Ajax называют
$(function() {
$(".upvoteClick").click(function() {
var postID = {postID: $('.postIdentity').val()};
var upvoteIncrement = {upvote: 1};
// alert(postID);
// console.log(postID);
$.ajax({
type:"POST",
data: upvoteIncrement, postID,
dataType: 'json',
url:"http://localhost:9000/api/upvote"
}).success(function (data) {
// console.log(data);
// console.log('Process success');
})
})
});
И, наконец, вот мой код сервера
router.post('/upvote', function (req, res, next) {
var data = req.body.upvote;
var query= {title: "Will this work"};
var update = {$inc: {upvote: data}};
var options = {new: true};
var Upvote = mongoose.model('Upvote', schema);
var mongoPostId = req.body.postID;
console.log(mongoPostId);
console.log(data);
Upvote.findOneAndUpdate(query, update, options, function (err, posts) {
if (err){
console.log('got an error in your DB');
res.sendStatus(200);
}});
// .then(() => res.sendStatus(200))
// .catch(next);
console.log('process SHOULD be done');
// console.log(data);
});
в console.log (mongoPostId) Я все время становлюсь неопределенным. Однако проблема где-то с моим вызовом ajax, потому что я не могу отправить переменную postID вместе с переменной upvoteIncrement.
Заранее спасибо.
это сработало! Благодаря! –