我正在努力获取名称与我存储另一个数据库的名称匹配的记录。我可以检索所有数据字段,但是我正努力获取特定记录,即name = jack或jill。我想使用我从护照记录中获取的变量,可以在req.user.username中访问该变量。
我尝试使用findOne并在没有任何运气的情况下操纵ejs数组。它打印到控制台,但我无法在vieworders.ejs上显示我认为我太复杂了,在applicationDB.name = req.user.username的地方查找和显示记录的最佳方法是什么?
server.js是
app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
Myapplication.find(function(err, myorders) {
res.render('vieworders', { user: req.user, myorders: myorders});
console.log(myorders);
});
});
vieworders.ejs是
<h1> Display Orders Here </h1>
<% if(myorders.length>0) { %>
<table border="1">
<tr>
<th>Index</th>
<th>Name</th>
<th>size</th>
</tr>
<% for(var i=0; i<hurleys.length;i++) { %>
<tr>
<td><%= i %></td>
<td><%= myorders[i].name %></td>
<td><%= myorders[i].orderssize %></td>
</tr>
<% } %>
</table>
<% } else { %>
No Record Found
<% } %>
MyApplication模式是
const mySchema= new Schema({
name: {
type: String,
required: true,
},
ordersize: {
type: String,
required: true,
},
});
module.exports = mongoose.model('MyApplication', mySchema);
您必须将查询过滤器作为find
方法的第一个参数传递。
这应该可以解决问题,假设用户名在模式中存储为name
。
app.get('/vieworders', require('connect-ensure-login').ensureLoggedIn(), function(req, res) {
Myapplication.find({name: req.user.username}, function(err, myorders) {
res.render('vieworders', { user: req.user, myorders: myorders});
console.log(myorders);
});
});