Bread09
@Bread09
Newonkiy

Как в получить данные с двух и более таблиц в node js mysql?

У меня есть 2 таблицы videos и comments
Как отправить их данные на фронт? Нужно что-то типа этого

res.render('video/play', {
        video,
        comments
    }
});


// Video page
router.get('/:video', async (req, res, next) => {
	const userId = req.session.userId;
	const userLogin = req.session.userLogin;
	const videoId = req.params.video;
	if (!videoId) {
		const err = new Error('Not Found');
		err.status = 404;
		next(err);
		console.log('Error 404!!!');
	} else {
		try {
			// Показываю видео
			let sql = `SELECT * FROM videos WHERE id = '${videoId}';`;
			const queryToDB = await db.query(sql, (err, result) => {
				if (err) throw err;
				if (!result[0]) {
					// Если видео не найден
					res.json({
						ok: false,
						error: 'Video not found!'
					});
				} else {// Если видео найдено ПОКАЗЫВАЕМ
					// Подгружаю коменты
					let sql1 = `SELECT * FROM comments WHERE video = ${videoId}`;
					const queryToDB1 = await db.query(sql1, (err, result) => {
						if (err) throw err;
						if (!result[0]) {
							console.log('Comments not found!')
						} else {
							console.log(result)
						}
					});
					const video = result[0];
					res.render('video/play', {
						video,
						user: {
							id: userId,
							login: userLogin
						}
					});

					// Добавляем +1 к просмотрам видео
					let sql = `UPDATE videos SET views = views+1 WHERE videos.id = ${videoId} `;
					db.query(sql, (err, result) => {
						if (err) throw err;
					});
				}
			});
		} catch {
			throw new Error("Server error!")
		}
	}
})
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы