Не удается прочитать свойство ‘include’ неопределенно — Экспресс-маршрутизации

#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']