[NodeJS]: Перенаправление после маршрута> функция, вызываемая до перенаправления> можем ли мы перенаправить после вызова функции? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть маршрут, как показано ниже,

router.get('/startjob', function(req, res) {
    var = "one";
    start();
    res.redirect('/');
}

Моя функция запуска проходит цикл и нуждается в перенаправлении на домашнюю страницу,

start(){
    check = setInterval(function(){
        if(//condition){
            var = "two";
            clearInterval(check);
            // redirect to '/'
        }
    },5000);
}

Почему я хотел сделать перенаправление дважды, потому что я хотел обновить переменные, отображаемые на домашней странице сразу после маршрута, а также в конце функции start ()

router.get('/', function(req, res) {
    res.render('index', { 
            title: 'Home',
            value: var
        });
}

Поскольку я уже произвел перенаправление на маршруте до завершения функции, я не могу выполнить перенаправление на домашнюю страницу внутри функции.

Единственное решение, которое я смог найти, это не делать перенаправление внутри функции и обновлять страницу каждые 5 секунд или около того, что я не считаю правильным.

Есть ли обходной путь для перенаправления внутри функции?

Спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

Из вашего вопроса я могу заключить, что вы хотите перенаправить на новую страницу в начале и в конце функции start (). Дайте мне знать, если работает ниже.

router.get('/startjob', function(req, res) {
    var = "one";
    start(res);       
}

start(res){
    res.redirect('/');
    check = setInterval(function(){
        if(//condition){
            var = "two";
            clearInterval(check);
            res.redirect('/');
        }
    },5000);
}
...