node.js - 如何从另一条路线调用一个模型
问题描述
请问我有一个问题。我已经尝试实施这个超过四个小时,但它没有奏效。我正在使用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
});
});
我采用这种方法的原因是因为我想在我的布局文件(登陆页面)上显示我最新的帖子博客,但是当我在我的布局中包含帖子索引文件时,它说我的帖子是未定义的,所以我决定采取一种不同的方法来实现这一点。如果您知道我如何完成此操作,请帮助我或我可以使用的任何其他方法来完成此操作。
解决方案
Mongo 查询是异步的。因此,当您返回响应时, Post.find() 查询尚未完成。您可以使用回调、承诺或异步/等待来控制流程。
// 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);
})
});
推荐阅读
- python - 如何并行化嵌套列表中2个元素的乘法
- php - laravel-无法在某些列中存储值
- typescript - 如何使用 typescript mobx 使用静态属性
- node.js - 运行puppyteerjs的nodejs程序失败
- python - /admin/ 处的 Django SuspiciousFileOpretation
- javascript - 在动态数组中显示和样式化字符串
- ruby-on-rails - 如何转到我评论过的问题
- c++ - 以升序对 2d 数组中的数字进行排序,然后以 1d 的形式呈现
- python - 我需要使用 python 将 SQL 命令发送到 INNER JOIN 两个 TABLES
- regex - 正则表达式:)