Асинхронные запросы перед рендерингом страницы в Express.JS - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь реализовать Последовательность HTTP-запросов в учебных целях в express.js. Для этого я работал с async / await, ожидая своих запросов, и поместил их в блок try catch. Все работает как и положено, так как я добавил console.log для проверки потока. Когда все сделано, я хочу отобразить мою страницу с помощью встроенной функции res.render (), но она вызывает ошибку при вызове res.render () [res.render не является функцией].

Я мог бы загрузить данные через AJAX, но действительно ли это необходимо?

/* Express Functions */
router
.get('/', async function (res,req,next){
    try{
        doSynchronousThings();
        const ParticipantIds = await xingRequests.getParticipantIds();
        console.log('...getParticipantIds response:');
        console.log(ParticipantIds);
        finalLog();
        const ParticipantData = await xingRequests.getParticipantData(ParticipantIds[0]);
        console.log('...getParticipantData response:');
        console.log(ParticipantData);
        console.log('...all done');
    }catch(err){
        console.error(err);
        next(err);
    }
    res.render('test', {
        page: {
            title:'Xing Event API',
            message: 'Happy Hacking!'
        }
    });
});

Методы xingRequest просто запускают запрос на основе запроса-обещания и возвращают объекты ответа.

...