#javascript #node.js #express #routes
#javascript #node.js #экспресс #маршруты
Вопрос:
Я пытаюсь выполнить некоторую базовую маршрутизацию в зависимости от того, что отмечено / отмечено на первой (родительской) странице. Таким образом, если на первой странице было 3 варианта, и пользователь выбрал 2 из них, то я бы ожидал, что пользователь увидит две (дочерние) выбранные страницы, но не третью (поскольку она не была выбрана).
Мой подход заключался в том, чтобы на первой (родительской) странице выполнить следующее:
router.post('/first-page/', function (req, res, next) {
var errors = []
var myCheckboxes = req.body.checkboxes
if (myCheckboxes === 'undefined') {
//error validation
} if (myCheckboxes.includes('first')) {
res.redirect('first-option-page')
return
} if (myCheckboxes.includes('second')) {
res.redirect('second-option-page')
return
} if (myCheckboxes.includes('third')) {
res.redirect('third-option-page')
return
} else {
res.redirect('move-on')
return
}
})
Затем для других страниц то, что я делал, используется req.session.data['checkboxes']
и снова проходит через цикл, чтобы увидеть, выбрана ли вторая и / или третья страница опций, и если они есть, то показывать эти страницы до тех пор, пока, в конце концов, все это не пройдет.
Проблема, с которой я столкнулся, заключается в том, что затем он выдает ошибку «Не удается прочитать свойство ‘include’ неопределенного» для дочерних страниц.
router.post('/first-option-page/', function (req, res, next) {
var errors = []
var myCheckboxes = req.session.checkboxes
if (myCheckboxes.includes('second')) {
res.redirect('second-option-page')
return
} if (myCheckboxes.includes('third')) {
res.redirect('third-option-page')
return
} else {
res.redirect('move-on')
return
}
})
Есть ли более простой способ пробежаться по страницам или что я могу сделать, чтобы устранить ошибку, пожалуйста?
Комментарии:
1. это потому, что myCheckboxes(req.session.checkboxes) может иметь нулевое значение
2.
else {
не требуется при возврате внутри блоков if.
Ответ №1:
Нашел свою проблему, я написал req.session.checkboxes
неправильно, это должно было быть req.session.data['checkboxes']