在EJS中显示嵌套字段mongodb,可以通过以下步骤实现:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
// 连接到MongoDB数据库
mongoose.connect('mongodb://localhost/mydatabase', {
useNewUrlParser: true,
useUnifiedTopology: true,
});
// 创建数据模型
const Schema = mongoose.Schema;
const nestedSchema = new Schema({
nestedField: String,
});
const mainSchema = new Schema({
mainField: String,
nestedData: nestedSchema,
});
const MainModel = mongoose.model('Main', mainSchema);
// 设置模板引擎为EJS
app.set('view engine', 'ejs');
// 处理路由
app.get('/', (req, res) => {
MainModel.find({}, (err, data) => {
if (err) {
console.error(err);
return res.status(500).send('An error occurred');
}
res.render('index', { data });
});
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Nested Field Display</title>
</head>
<body>
<h1>Nested Field Display</h1>
<% data.forEach(function(item) { %>
<p>Main Field: <%= item.mainField %></p>
<p>Nested Field: <%= item.nestedData.nestedField %></p>
<hr>
<% }); %>
</body>
</html>
上述代码中,我们使用了express作为Node.js的框架,mongoose作为MongoDB的ODM(对象文档映射器),ejs作为模板引擎。在路由处理中,通过MainModel.find()方法从数据库中获取数据,并将其传递给渲染视图。在视图中,使用EJS的模板语法来显示每个文档的主字段和嵌套字段。
希望对你有所帮助!如果你需要了解更多关于MongoDB、Express、EJS以及相关技术的知识,可以查阅以下腾讯云产品和文档:
领取专属 10元无门槛券
手把手带您无忧上云