Ответ из веб-формы ничего не отобразит после пробела на консоли

#html #node.js #mongodb #express #handlebars.js

Вопрос:

Я столкнулся с другой проблемой и надеялся, что кто-нибудь поможет мне в этом разобраться. Мне удалось извлечь информацию из формы и сохранить ее в базе данных. Но я заметил, что, когда я отображаю данные на консоли, часть информации остается позади, когда между ними остается пространство. Например, значением элемента параметры для комнаты может быть «обучение веб-разработке». Когда я пытаюсь отобразить это в консоли, это дает мне только «Обучение». Что странно, так это то, что все слова, включая пробелы между ними, добавляются в базу данных.

  <form class="form-container"  method="POST">

            <div class="form-group">
                <label>Room</label>
                <select name="room" class="form-select" required aria-label="select example">
                {{#each room}}
                <option class="rooms" value={{this.room}}>{{this.room}}</option>
                {{/each}}
                </select>
                <label>Session</label>
                <select name="session" class="form-select" required aria-label="select example">
                {{#each room}}
                    <option class="rooms" value={{this.session_name}}>{{this.session_name}}</option>
                {{/each}}
                </select>
            </div>

            <div class="form-group">
                <label for="exampleInputPassword1">Time</label>
                <input type="time" name="count_time" class="form-control" id="exampleInputPassword1">
            </div>

            <div class="form-group">
                <label for="exampleInputPassword1">Count</label>
                <input type="number" name="room_counts" class="form-control" id="exampleInputPassword1" placeholder="Count">
            </div>

            <div class="button-container">
                  <button type="submit" class="btn btn-primary">Submit</button>
            </div>       
          
        </form>
 

Вот код js узла:

 app.post('/count', (req,res)=>{

    console.log(req.body.session);
    console.log(req.body);
   
    res.redirect('/count');

});
 

Вот ответ на консоли:

 Learning
{
  room: 'Kenmore',
  session: 'Learning',
  count_time: '13:33',
  room_counts: '100'
}
 

сессия: Обучение. Предполагается, что это будет сессия: Изучение веб-разработки. Я хочу использовать значение из сеанса, чтобы сравнить его с тем, что есть в базе данных. Любая помощь будет признательна.

Ответ №1:

Объяснять

Возьмем, к примеру, эту строку:

 <option class="rooms" value={{this.session_name}}>{{this.session_name}}</option>
 

Если this.session_name есть learning web development , то это станет:

 <option class="rooms" value=learning web development>{{this.session_name}}</option>
 

И value это просто «обучение», web и development будет рассматриваться как атрибуты option тега типа class или value (вы можете видеть цвета текста)

Экшен

Вы должны заключить переменную в двойные кавычки

 <option class="rooms" value="{{this.session_name}}">{{this.session_name}}</option>
 

Это станет:

 <option class="rooms" value="learning web development">{{this.session_name}}</option>
 

Комментарии:

1. Вау, еще раз спасибо, что объяснил мне это