Я использую Node/Express (самые последние рабочие версии)
У меня есть форма, в которой я собираю информацию о новой учетной записи. Пользователь может добавить имя пользователя и т. д.
В обработчике представления я проверяю базу данных mongodb, чтобы убедиться, что имя пользователя уникально. Если это не так, я генерирую сообщение и перезагружаю исходное представление. Поскольку первоначальный запрос был сообщением, все данные, отправленные пользователем, находятся в req.body. Я хотел бы добавить данные, отправленные пользователем в ответ. Я мог бы сделать это, специально добавив каждое значение в ответ. Но нет ли более простого способа добавить все данные запроса обратно в ответ? И есть ли способ отобразить это в представлении (я использую ejs), я попробовал res.send(JSON) в сочетании с переменными ejs. При этом возникают ошибки, говорящие о том, что переменные недоступны.
Вот моя функция (не обращайте внимания на users.createUser(req) - она еще не закончена):
createAccount: function(req, res, next){
users.createUser(req);
res.render('create_account', {
layout: 'secure_layout',
title: 'Create Account',
givenName: req.body.givenName,
username: req.body.username,
familyName: req.body.familyName
});
},
И вот мой взгляд:
<form action="/createAccount" method="post">
<div>
<label>First Name:</label>
<input type="text" name="givenName" value="<%= givenName %>"/><br/>
</div>
<div>
<label>Last Name:</label>
<input type="text" name="familyName" value="<%= familyName %>"/><br/>
</div>
<div>
<label>Username:</label>
<input type="text" name="username" value="<%= username %>"/><br/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div>
<input type="submit" value="Submit"/>
</div>
</form>
Кажется слишком сложным добавлять каждое из значений. Я попробовал {body: req.body}, но значения так и не были добавлены в представление.