Итак, я уже использую Ajax для отправки массива на маршрутизатор, как вы могли видеть здесь ...
var send = function () {
var data = search
console.log(data)
$.ajax({
type: 'post',
url: "/next",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
console.log('Success')
},
error: function (err) {
console.log(err)
}
})
}
send();
Если я console.log, это как
console.log(req.body)
Я получаю
[ 'Faye Dunaway', 'Kathy Bates' ]
и это нормально, мне это нужно. Тем не менее, в моем маршрутизаторе я также пытаюсь отобразить новую страницу с данными в ней следующим образом ....
router.post("/next", function (req, res) {
Movies.find({name:{ $in: req.body}}, function(err, found){
if(err){
console.log(err)
} else {
res.render('movies',{
movies:found
})
}
})
})
Теперь мне сказали, что я не могу вызвать res.render с помощью ajax поэтому мне нужно было сделать кнопку внутри формы.
<form action="/next" method="post">
<button class="btn btn-outline-success btn-lg next">next</button>
</form>
Однако, если я теперь console.log req.body, я получаю
[ 'Faye Dunaway', 'Kathy Bates' ]
{}
Итак, я думаю о двух вещах: либо res.render должен вызываться с ajax или мне нужно избавиться от {}. Как вы понимаете, я новичок в этом. Спасибо за помощь. Запросите дополнительную информацию.