Дано:
router.get('/register', function(req, res, next) {
var message = "";
res.render('register', { title: 'Register', userMessage: message});
});
router.post('/registration/submit', function(req, res, next) {
// ##### Some unintersting code is here ########## (....) -->
var message = "";
MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
const db = client.db(dbName);
db.collection('userdata').findOne({ email: mailAddress }, (error, result) => {
if (!error) {
if (result) {
console.log("Item exists");
message = 'User already exists!';
} else {
db.collection('userdata').insertOne(item, (err, result) => {
assert.equal(null, err);
console.log("Item inserted:");
message = "User inserted! <br>You entered: " + item.email + " as your emailaddress.";
console.log(item);
client.close();
});
}
} else {
message = "Unexected error with DB";
console.log("MongoDB error");
}
});
});
res.redirect('/register', {userMessage: message} );
});
register.html:
<form action="/registration/submit" method="post" style="margin:20px">
{{#if userMessage}}
{{message}}
{{/if}}
<!-- ... SOME UNINTERESTING CODE (input-fields) -->
<button class="btn btn-primary" id="regBut" type="submit">Register</button>
</form>
После нажатия кнопки отправки выполняется проверка, если элемент уже существует.После этого там должно появиться message
.Таким образом, консоль выдает некоторые ошибки:
express deprecated res.redirect (url, status): используйте res.redirect (status, url) вместо rout \ index.js: 149: 7 POST / registration / submit'throw new Error (' Не могу установить заголовки после их отправки. ');Ошибка: невозможно установить заголовки после их отправки. '
Используются рули двигателя шаблона.Как отобразить и перенаправить как res.redirect('/register', {userMessage: message} );
, чтобы показать сообщение от <form action='/registration/submit'>
?