Рендеринг HTML из REST API NodeJs, Express и EJS

У меня есть API с методом GET на mysite.com/api/posts, который возвращает список сообщений в формате JSON.

тогда у меня есть этот маршрут mysite.com/posts, который должен отображать с помощью EJS Json из /api/posts

Как этого добиться с помощью NodeJS Express? Как старшие разработчики NodeJS подходят к этому? Не могли бы вы помочь мне, кинув код или, может быть, разработчик NodeJS что-то сделал в GitHub?

Мой код выглядит так:

routes.js

(...)

// GET route find all posts 
app.get('/posts', postsController.findAll); 

(...)

postController.js

(...)

findAll(req, res, next) {

    // This is the part that I am not sure, populate
    // data with the API results
    let data = app.get('/api/posts', apiPostsControllers.findAll)

    res.render('index', {
      page_layout: 'posts',
      page_title: 'Posts,'
      data: data
    });
  }

(...)

Большое спасибо


person Matt    schedule 27.03.2017    source источник
comment
гугл твой друг! это должно быть хорошей отправной точкой: scotch.io/tutorials/ использовать-ejs-для-шаблона-приложения-узла   -  person Paolo    schedule 27.03.2017
comment
@PaoloMangia Я думаю, вы не читали, что я сказал, извините, приятель, но я знаю, как использовать Google, и результаты, подобные этим, составляют миллионы, ссылка, которую вы мне прислали, они отображают вид сразу, но я пытаюсь достижения заключается в том, чтобы иметь и API, который дает мне результаты JSON, а затем визуализирует их, я предполагаю, что у меня должно быть 2 отдельных маршрута, но я не знаю, какой из них является лучшим подходом к этому. :(   -  person Matt    schedule 28.03.2017


Ответы (1)


Вы должны опубликовать свои данные по этому пути. Затем в теле запроса вы получите данные POST. Вы можете отправить эти данные в шаблон EJS, используя res.render('path', {data: [POSTdata] }); Затем вы получите все значения POST в шаблоне EJS в переменной данных. Поскольку вы предоставляете REST API в формате JSON, вы можете использовать альтернативный подход с использованием Angularjs. поэтому вы можете использовать angular http.get([RESTUrl]) и привязать эти данные к представлению HTML

person AJS    schedule 27.03.2017