在使用NodeJS和Mongoose查询EJS中的数据时,可以按照以下步骤进行操作:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
// 连接到MongoDB数据库
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('MongoDB连接成功');
app.listen(3000, () => {
console.log('服务器已启动');
});
})
.catch((error) => {
console.error('MongoDB连接失败', error);
});
请注意,上述代码中的mongodb://localhost/mydatabase
应替换为你的MongoDB数据库的连接字符串。
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: String,
age: Number,
email: String
});
const User = mongoose.model('User', userSchema);
上述代码中的userSchema
定义了用户模型的字段和类型,User
是模型的名称。
const express = require('express');
const User = require('./models/user'); // 引入用户模型
const app = express();
// 路由
app.get('/', (req, res) => {
// 查询数据
User.find({}, (error, users) => {
if (error) {
console.error('查询数据失败', error);
return res.status(500).send('服务器错误');
}
// 将数据传递给EJS模板进行渲染
res.render('index.ejs', { users: users });
});
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动');
});
上述代码中的User.find({}, (error, users) => { ... })
用于查询所有用户数据,并将结果传递给回调函数中的users
参数。
index.ejs
的EJS模板文件,并在其中使用<%= %>
语法呈现查询到的数据。示例如下:<!DOCTYPE html>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<ul>
<% users.forEach(function(user) { %>
<li><%= user.name %> - <%= user.email %></li>
<% }); %>
</ul>
</body>
</html>
上述代码中的users
是从服务器传递到模板的数据,可以通过<%= %>
语法在模板中进行渲染。
这样,当访问根路由('/'
)时,服务器会查询所有用户数据,并使用EJS模板将数据呈现为HTML页面,然后发送给客户端进行显示。
关于Node.js、Mongoose、EJS和MongoDB的更多详细信息和使用方法,请参考以下链接:
请注意,以上提供的是一种基本的查询和呈现数据的方法,实际应用中可能需要根据具体需求进行适当的调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云