чтобы понять это, давайте посмотрим, что делает каждый из этих методов.
res.redirect('page.ejs');
Это скажет Express, чтобы перенаправить ваш запрос на конечную точку GET /page.ejs
. Конечной точкой является экспресс-метод, который вы описали выше:
app.get('/page', function(req, res) {
res.render('page.ejs');
});
, так как у вас нет определенной конечной точки, она не будет работать. Если он определен, он выполнит функцию, и запустится строка res.render('page.ejs')
, которая вернет файл page.ejs
. Вы можете вернуть все, что захотите, это может быть someOtherPage.ejs
, или вы можете даже вернуть json res.json({ message: 'hi' });
res.render('page.ejs');
это просто ответит клиенту (front-end / js / как вы хотите его называть) шаблоном page.ejs
, ему не нужно знать, присутствует другая конечная точка или нет, он возвращает сам шаблон page.ejs
.
итак, это действительно зависит от вас, что вы хотите использовать в зависимости от сценария. Иногда одна конечная точка не может обработать запрос, поэтому она переносит запрос на другую конечную точку, которая теоретически знает, как обрабатывать запрос. В этом случае используется redirect
.
надежда, которая имеет смысл и проясняет ваше замешательство
(я не эксперт по внутренней работе экспресса, но это общее представление о том, что он делает)