2016-03-20 3 views
0

Я новичок в node.js, и что я хочу сделать, это передать введенные данные формы после обработки формы обратно в поля ввода, если в данных, переданных в форме, есть что-то ошибочное (например, имя пользователя уже используется) , Я пытаюсь сделать это с помощью EJS, но форма, похоже, не возвращает значение.Как правильно кэшировать входные данные в node.js?

Ниже мой app.js фрагмент кода:

app.use(bodyParser.urlencoded({ 
    extended: false 
})); 

app.use(bodyParser.json()); 
app.post('/',function(req,res){ 
    var username = req.body.username; 
    res.render('registration', {title: 'Registration', 
          username: username}); 
}); 

Ниже мой registration.ejs фрагмент кода:

<form class="form" action="/" method="post" name="regForm"> 

       <div class="form-group"> 
       <input type="text" value="<% username %>" name="username" class="form-control" id="username" placeholder="Username" onblur="validateUsername(this.value)" required> 
       </div> 
</form> 

После размещения Я ожидаю поле имени пользователя, чтобы быть наполнен значение, введенное мной, но похоже, что это не так. Что может быть причиной?

Я правильно занимаюсь этим кешем или есть способ лучше кэшировать входные данные?

+0

Вы уверены, что 'req.body.username' является строкой? Используете ли вы подходящее средство для разбора синтаксического кода (например, «промежуточное программное обеспечение» для «urlencoded()» body-parser? – mscdex

+0

У меня это в моем коде: app.use (bodyParser.json()); Это то, о чем вы говорите правильно? – dtem052996

ответ

0

Вам необходимо использовать промежуточное программное обеспечение для разбора форм bodyParser.urlencoded({ extended: false }), поскольку форма HTML составляет форму application/x-www-form-urlencoded, а не application/json -форматированные данные формы.

+0

Нет, если у вас нет других представлений форм, которые отправляют запросы с форматом 'application/json'. – mscdex

0

Я понял, что случилось. Я забыл поставить «=» после <% в моем коде EJS. После этого он работал.

Смежные вопросы