Сохранить значение формы в массиве строк в nodejs - PullRequest
0 голосов
/ 15 сентября 2018

Итак, у меня есть метод post в моем приложении nodejs, и я хочу отправить форму из моего файла ejs в массив одной из моих моделей.В файле ejs у меня есть опция выбора для пользователя, чтобы ввести список предметов.После отправки я не могу получить значения из опции выбора.Я пытался сохранить его в массиве, но он показывает неопределенный.У меня есть модель инструктора, где он хранит поля предметов в списке строкового массива.Я не уверен что делать.Вот что у меня есть:

admin.js

router.get('/newInstructor', isLoggedIn, function(req, res) {
    res.render('newInstructor.ejs');
});

router.post('/newInstructor', isLoggedIn, function(req, res) {
    var lisOfSubjects = [req.body.listOfSubjects];
        console.log('Subjects -> ' + lisOfSubjects);


    var newInstructor = new Instructor ({
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        email: req.body.email,
        officeNumber: req.body.officeNum,
        cellNumber: req.body.cellNum,
        address: {
            address1: req.body.address,
            address2: req.body.address2,
            city: req.body.city,
            state: req.body.state,
            zipCode: req.body.zip
        },
        subjects: lisOfSubjects,
        officeLocation: req.body.officeLocation
    });
    console.log(newInstructor);

});

Просмотр файла ejs

<!-- js function to insert and remove from the select option-->
    <script>
                function insertTeachingSelect() {
                    var text = document.getElementById("subject").value;
                    console.log(text);

                    var select = document.getElementById("listOfSubjects");
                    select.options[select.options.length] = new Option(text, 'Value1');
                }

            function removeTeachingSelect() {
                var removeSelect = document.getElementById("listOfSubjects");
                removeSelect.remove(removeSelect.selectedIndex);
            }
    </script>
......

<div class="form-group">
<div class="form-row">
<div class="col-md-4">
<div class="form-label-group">
<input type="text" id="subject" name="subject" class="form-control">
 <label for="Enter subject">Enter subject</label>
  </div>
  </div>
 <div class="col-md-2">
 <div class="form-label-group">
<input type="button" onclick="insertTeachingSelect()" class="btn btn-primary btn-block" value="Add more">
<input type="button" onclick="removeTeachingSelect()" class="btn btn-primary btn-block" value="Remove">
  </div>
   </div>

    <div class="col-md-6">
    <div class="form-label-group">
    <input type="text" id="officeLocation" name="officeLocation" class="form-control" placeholder="Office location" required="required">
                                <label for="officeLocation">Office location</label>
                              </div>
                            </div>
                          </div>
            </div>

            <div class="form-group">
               <div class="form-row">
                <div class="col-md-4">
                  <div class="form-label-group">
                     <select id="listOfSubjects" name="listOfSubjects"size="5"></select>
                  </div>
                </div>
              </div>
            </div>

                        <div class="form-group ">
                         <div class="form-row">
                            <div class="col-md-6 mx-auto">
                              <div class="form-label-group">
                                <button type="submit" class="btn btn-primary btn-block">Submit</button>
...