使用MongoDB和Node.js将多个集合发送到一个EJS文件的方法如下:
npm install mongodb
const MongoClient = require('mongodb').MongoClient;
const express = require('express');
const app = express();
const ejs = require('ejs');
MongoClient.connect('mongodb://localhost:27017', (err, client) => {
if (err) throw err;
const db = client.db('your_database_name'); // 替换为你的数据库名称
const collection1 = db.collection('collection1_name'); // 替换为第一个集合的名称
const collection2 = db.collection('collection2_name'); // 替换为第二个集合的名称
// 使用MongoDB查询获取集合数据
const query1 = {};
const query2 = {};
collection1.find(query1).toArray((err, docs1) => {
if (err) throw err;
collection2.find(query2).toArray((err, docs2) => {
if (err) throw err;
// 将获取到的集合数据传递给EJS模板
app.get('/', (req, res) => {
res.render('your_ejs_template', { collection1Data: docs1, collection2Data: docs2 });
});
});
});
});
<html>
<head>
<title>Multiple Collections</title>
</head>
<body>
<h1>Collection 1:</h1>
<ul>
<% collection1Data.forEach(function(doc) { %>
<li><%= doc.field1 %></li> <!-- 替换为集合1中的字段名 -->
<% }); %>
</ul>
<h1>Collection 2:</h1>
<ul>
<% collection2Data.forEach(function(doc) { %>
<li><%= doc.field2 %></li> <!-- 替换为集合2中的字段名 -->
<% }); %>
</ul>
</body>
</html>
app.set('view engine', 'ejs');
app.listen(3000, () => {
console.log('Server started on port 3000');
});
现在,当你访问服务器的根路径(例如:http://localhost:3000/),EJS模板将会渲染并显示多个集合的数据。
请注意,以上示例中的代码仅作为参考,你需要根据实际情况进行调整。此外,根据项目需求,你可能需要安装其他相关模块或进行其他配置。
领取专属 10元无门槛券
手把手带您无忧上云