我在做一个Facebook的克隆版,准备上传一张个人资料照片。我有一个带有profilePicture
对象的User
模式。用户访问该页面,上传一张图片,该图片的URL将被添加到其profilePicture
值中。User
架构
const userSchema = new mongoose.Schema({
username: String,
profilePicture: String,
});
下面是一个用户在数据库中的样子的例子。
_id: 642716b83w306234dx8d6cab
username: "Dagger"
profilePicture: "public\images\uploads\a7c770ff72d830a4fb0c8f6963ab9aa8"
下面是对我的profilePicture的GET请求。我正在使用User.find()
查找profilePicture
router.get("/:user/profile-picture", (req, res) => {
User.find({}, "profilePicture").exec(function (err, profilePicture) {
if (err) {
return next(err);
}
res.render("picture", { user, id, picture, profilePicture });
});
});
但是当我将img
代码添加到ejs页面时,什么也没有显示。
<div class="avatar">
<img src="<%= profilePicture %>.jpg" alt="logo" />
</div>
当我检查元素时,我注意到<%= profilePicture %>
的值是我的数据库中每个用户的列表。我怎样才能缩小它的范围,使我只得到设置为"public\images\uploads\a7c770ff72d830a4fb0c8f6963ab9aa8"
的值?
1条答案
按热度按时间llew8vvj1#
您可能希望使用
findOne()
并指定要搜索的参数。例如:
由于您希望它是动态的,因此需要用一个变量替换我在这里使用的硬编码的
'Dagger'
值,这样您就可以确定要提取哪个用户的照片。