我试图使用猫鼬找到数据库中的所有文档,但我不能这样做
我想这样做,但我不知道它有什么问题
app.get('/users', function (req, res){
User.find({}, 'name', function(err, user){
if(err){
console.log(err);
}else{
res.render('user-list', {
name : user.name
});
console.log('retrieved list of names' + user.name);
}
})
})
当我使用User.findOne({}, 'name', function(err, user){..
时,我会收到第一份文件,这是我所期望的。请解释为什么上面的代码不允许我获取所有文档。我觉得我在 mongoose doc
编辑
感谢帮助人员
我确实喜欢这个:
app.get('/users', function (req, res){
User.find({}, 'name', function(err, users){
if(err){
console.log(err);
}else{
res.render('user-list', {
name : users.map(function(doc){
return doc.name + "<br>"
})
});
console.log('retrieved list of names' + users.name);
}
})
})
有人可以帮助我将每个名字放在"<br>"
显示在页面上的新行上但不会换新行"<br>,Joe<br>,mike<br>"
玉: 扩展布局
block content
p list of users #{name}
答案 0 :(得分:4)
app.get('/users', function (req, res){
User.find({}, 'name', function(err, users){
if(err){
console.log(err);
} else{
res.render('user-list', users);
console.log('retrieved list of names', users.length, users[0].name);
}
})
});
如评论中所述,find
可以找到许多对象,因此它返回一个与返回单个对象的findOne
形成对比的数组。如上所述进行调整,您应该回到正轨。
答案 1 :(得分:0)
app.get(`/users`, async (req,res)=>{
try{
const users = await User.find({}).exec()
users && res.render('user-list',users)
}catch(error){
res.status(500).json({error})
}
})
//OR
app.get(`/users`, async (req,res)=>{
try{
const users = await User.find({}).exec()
const list = new Array()
for(let row of users){
list.push(`${users.name}<br>`)
}
list ? res.status(200).send(list) : res.status(200).json({message: 'Users list is empty'})
}catch(error){
res.status(500).json({error})
}
})
在第二个示例中,您向客户端发送一条文本行!!!