Как правильно получить промис?

Здравствуйте, использую Expres+TypeORM+routing-controllers
Приложение рендерит страницы из  ejs.

Не могу понять, почему у меня прилетает пустой объект из контроллера.

Код контроллера:
@Controller()
@Get('/dashboard')
@Render ('dashboard')
    getDashboard () {
        const sites = this.usersSitesService.selectSitesByUserId(1);

        return { sites };
    }


Код сервиса:
selectSitesByUserId =  async (id: number): Promise<any> => {
        const res = await this.sitesRepository.createQueryBuilder('s')
            .leftJoin('usites', 'u', 's.id = u.site_id')
            .where('u.user_id =:id', {id: id}).getMany();
        return res;
    }


код в ejs файле
<ul class="nav nav-treeview">
                            <% for(let i = 0; i < sites.length; i++) { %>
                            <li class="nav-item">
                                <a href="/dashboard/sites/?siteId=<%= sites[i].id %>" class="nav-link">
                                    <p><%= sites[i].siteName %></p>
                                </a>
                            </li>
                            <% } %>
                        </ul>


Но сам site прилетает пустой - {}

Что я делаю не так?

Репо с докой router-controller https://github-com.translate.goog/typestack/routin...

return { sites }; - того требует дока при декораторе @render. Только в таком синтаксисе передаются переменные в рендер. И если наполнить sites ручками, то все работает.

Буду благодарен за помощь!
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
А кто будет ждать асинхронное действие?
@Controller()
@Get('/dashboard')
@Render ('dashboard')
    async getDashboard () {
        const sites = await this.usersSitesService.selectSitesByUserId(1);

        return { sites };
    }


selectSitesByUserId =  async (id: number): Promise<any>
Какой смысл в тайпскрипте, если писать any?

Репо с докой router-controller https://github-com.translate.goog/typestack/routin...
Ссылка на машинный перевод? Вы это серьезно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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