【发布时间】:2021-02-19 18:26:46
【问题描述】:
让我先承认我对 MongoDB 和 Node.js 都很陌生。我正在尝试在 mongodb atlas db 中查询集合中的特定记录。我能够获取整个文档列表,但在使用任何类型的参数时都遇到了麻烦。该集合有 350K+ 文档,因此在获取所有文档时呈现 index.ejs 文件需要很长时间。理想情况下,index.ejs 页面上有字段,用户可以在其中输入参数值并单击提交以查询数据库并返回一条记录。但现在,我只想让这个更简单的代码正常工作并对查询参数值进行硬编码。婴儿步骤:)
这是我正在使用的 server.js 代码。我假设 app.get 或类似的应该嵌入在 index.ejs 文件中,并且只在 server.js 代码中呈现 index.ejs 文件,但我没有任何运气。
const express = require('express');
const ejs = require('ejs');
const mongoose = require('mongoose');
const app = express();
app.set('view engine', 'ejs');
mongoose.connect('mongodb+srv://**********@*************/membershiptesting', { useNewUrlParser: true }, {useUnifiedTopology: true });
const memberSchema = {
First: String,
Last: String,
email: String,
PassAcct: String,
ValidUntil: Date
}
const member = mongoose.model('passes',memberSchema);
app.get('/', function (req, res) {
member.find({},function(err, passes) {
if (err) return next(err)
res.render('index',{
passesList: passes
})
})
})
app.listen(3000, function () {
console.log('server is running')
});
这是 index.ejs 代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="Width=device-width, initial-scale=1">
<title>Document</title>
</head>
<h1>Members here</h1>
<body>
<%passesList.forEach(member => {%>
<p><%= member.First %></p>
<%})%>
</body>
</html>
谢谢, 标记
【问题讨论】:
-
你想用什么字段来查询数据库?
标签: javascript node.js mongodb ejs