如何从另一条路线调用一个模型
how to call one model from another route
请问我一个问题。我已经尝试了四个多小时来实现它,但它没有用。我正在使用 Node
、express
、mongoose
和 ejs
模板
我如何调用模型以从另一个路由文件中获取其中的所有数据。
例如:
我有 Post
模型,post.js
file
在 model
文件夹中。
我有 index.js
router
,index.js
文件在 routes
文件夹中
在 routes/index.js
文件中 我想在加载主页时获取 Post
模型中的所有 posts
以便我可以在我的 layout file
上显示它们(着陆页)
获取主页并渲染帖子
router.get('/', function(req, res, next) {
const allposts = Post.find({})
res.render('index', {
allposts: allposts
});
});
我采用这种方法的原因是因为我想在我的布局文件(着陆页)上显示我最新的 post 博客,但是当我在我的布局中包含 posts 索引文件时它说我的 posts 是未定义的,所以我决定采用不同的方法来实现它。
如果您知道我如何完成此操作,请帮助我或我可以用来完成此操作的任何其他方法。
Mongo 查询是异步的。因此,当您 return 响应时, 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);
})
});
请问我一个问题。我已经尝试了四个多小时来实现它,但它没有用。我正在使用 Node
、express
、mongoose
和 ejs
模板
我如何调用模型以从另一个路由文件中获取其中的所有数据。
例如:
我有 Post
模型,post.js
file
在 model
文件夹中。
我有 index.js
router
,index.js
文件在 routes
文件夹中
在 routes/index.js
文件中 我想在加载主页时获取 Post
模型中的所有 posts
以便我可以在我的 layout file
上显示它们(着陆页)
获取主页并渲染帖子
router.get('/', function(req, res, next) {
const allposts = Post.find({})
res.render('index', {
allposts: allposts
});
});
我采用这种方法的原因是因为我想在我的布局文件(着陆页)上显示我最新的 post 博客,但是当我在我的布局中包含 posts 索引文件时它说我的 posts 是未定义的,所以我决定采用不同的方法来实现它。 如果您知道我如何完成此操作,请帮助我或我可以用来完成此操作的任何其他方法。
Mongo 查询是异步的。因此,当您 return 响应时, 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);
})
});