@S4MU5
студент, учу всё подряд в программировании

Как решить ошибку при res.redirect node.js?

Запускаю сервер и захожу на свой локальный сайт. При переходе со страницы на страницу выдаёт в консоли ошибку Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client. Файлы сайтов в формате hbs, там я делаю переход через action = "/страница", при регистрации пользователя выводится эта же ошибка, но теперь с крашем сервера и дальнейшим его не запуском от слова совсем. Но если удалить из бд нового пользователя, которого я добавил через сайт, то сразу сервер начинает запускаться, но также с консольными ошибками Cannot set headers after they are sent to the client. Вот несколько строчек кода:
app.post('/registration', urlencodeParser, async function (req, res) {
	let login = req.body.login;
	let password = req.body.password;
	let clientName = req.body.clientName;
	let clientSurname = req.body.clientSurname;
	let nickName = req.body.nickName;
	const data = await pool.query("INSERT INTO clients(`nickName`, `clientName`, `clientSurname`) VALUES ( '" + nickName + "', '" + clientName + "', '" + clientSurname + "');");
	const [data1] = await pool.query("SELECT `clientID` FROM `clients` WHERE `nickName` = '" + nickName + "'");
	const id = data1[0];
	const data2 = await pool.query("INSERT INTO clientaccount(`clientsFK`, `login`, `password`) VALUES (" + id.clientID + ", '" + login + "', '" + password + "')");
	res.redirect('/');
});

app.get('/', async function (req, res) {
	const data = await pool.query('SELECT * FROM appartmenttype');
	const aparts = data[0];
	let login = req.signedCookies['login'];
	let password = req.signedCookies['password'];
	pool1.query('SELECT * FROM clientaccount', function (err, data) {
		data.forEach(el => {
			if (el.login == login && el.password == password) {
				res.render('index.hbs', {
					apart: aparts,
					logged: true,
					nickName: el.nickName
				});
			}
			else {
				res.render('index.hbs', {
					apart: aparts,
					logged: false
				});
			}
		})
	})
  
});
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы