Я хочу написать функцию с одним параметром id
, чтобы этот монго передавал моему home.ejs
.
Пример с этим запросом:
db.getCollection('users').find('5da85558886aee13e4e7f044', {image: 1})
Пример У меня есть маршрут.
route / users.js
var User = require("../models/user");
var db = require("../secure/db");
var middleware = require("../middlewares/middleware");
//...
router.get("/home", middleware.isAllowed, function(req, res, next) {
res.render('home',{
title: "Project",
userList: userList,
getUserimage: getUserimage(??)//trying here
})
});
, поэтому в home.ejs
или любом file.ejs
я могу позвонить как getUserimage('5da85558886aee13e4e7f044')
внутри цикла спискаids
views / home.ejs
<% layout('layout/layout') %>
//more code
<% for(var i=0; i < userList.length; i++){ %>
<div>
<img src ="<%=getUserimage(userList[i].id)%>" > <%=userList[i].name%>
</div>
<% } %>
//more code
Вот мой обновленный помощник
var User = require("../models/user");
var ObjectId = require('mongodb').ObjectID;
module.exports.getUserImage = async function getUserImage(id) {
let result = await User.find(ObjectId(id), {image: 1, _id: 0}).lean();
console.log(result[0].image);
return result[0].image; //or whatever you wanna return
};
Когда я console.log
, он дал мне правильный результат. но когда я вызываю view.ejs как этот <%=getUserImage("5d999578aeb073247de4bd6e")%>
файл, он дает мне [object Promise]