как назвать одну модель с другого маршрута - PullRequest
0 голосов
/ 19 апреля 2020

пожалуйста, у меня есть вопрос. Я пытался реализовать это более четырех часов, но это не сработало. Я работаю с шаблонами Node, express, mongoose и ejs. Как вызвать модель для извлечения всех данных из нее из другого файла маршрута.

Например:

У меня есть Post модель, а post.js file находится внутри папки model.

, у меня есть index.js router, а файл index.js находится внутри routes папка

внутри routes/index.js файла. Я хочу получить все модели posts внутри Post при загрузке домашней страницы, чтобы я мог отобразить их на своей layout file (целевой странице)

ПОЛУЧИТЕ ГЛАВНУЮ СТРАНИЦУ И ПОСТАВЩИКИ ПОДАЧИ ВСЕГО

router.get('/', function(req, res, next) {
  const allposts = Post.find({})
  res.render('index', {
   allposts: allposts
  });
});

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

1 Ответ

1 голос
/ 19 апреля 2020

Пн go запросы асинхронные. Поэтому, когда вы возвращаете ответ, запрос Post.find () не был завершен. Вы можете использовать обратные вызовы, обещания или async / await для управления потоком.

// require Post model
const Post = require('../model/post'); 

router.get('/', function(req, res, next) {
    Post.find()
    .then(allposts => {
        res.render('index', {allposts});
    })
    .catch(err => {
        console.log(err);
    })
});
...