在Mongoose、Node.js和EJS中填充多个集合可以通过以下步骤实现:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Connected to MongoDB'))
.catch(err => console.error('Could not connect to MongoDB', err));
这将连接到名为"mydatabase"的本地MongoDB数据库。你可以根据自己的需求修改连接字符串。
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
email: String,
// 其他字段...
});
const postSchema = new mongoose.Schema({
title: String,
content: String,
// 其他字段...
});
const User = mongoose.model('User', userSchema);
const Post = mongoose.model('Post', postSchema);
这将创建名为"User"和"Post"的Mongoose模型,对应于用户和帖子集合。
const express = require('express');
const router = express.Router();
router.get('/posts', async (req, res) => {
try {
const posts = await Post.find().populate('author');
res.render('posts', { posts });
} catch (err) {
console.error(err);
res.status(500).send('Internal Server Error');
}
});
module.exports = router;
在上面的代码中,我们使用populate
方法来填充帖子中的"author"字段,使其包含完整的用户信息。
<% posts.forEach(post => { %>
<h2><%= post.title %></h2>
<p><%= post.content %></p>
<p>Author: <%= post.author.name %></p>
<% }) %>
在上面的代码中,我们通过post.author.name
访问了填充后的作者名称。
这样,你就可以在Mongoose、Node.js和EJS中填充多个集合了。请注意,以上代码仅为示例,你需要根据自己的实际需求进行适当的修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云