Здесь «пользователь» - это набор имен пользователей, адрес электронной почты, пароль и массив идентификаторов. Эти идентификаторы принадлежат коллекции "urllist". Когда я делаю console.log(resp.urlslist)
, он предоставляет массив объектов. но при передаче того же результата с использованием res.render("finalsite",{linklist:resp.urlslist})
тогда urlslist
is null возникает ошибка: Итак, пожалуйста, помогите мне.
app.get("/finalsite/:use", function(req, res) {
user.findOne({
username: req.params.use
})
.populate("urlslist")
.exec()
.then((resp) => {
console.log(resp.urlslist);
res.render("finalsite", {
linklist: resp.urlslist
});
})
.catch((err) => {
console.log(err);
});
});
Вот мой шаблон EJS
, в котором я передаю данные в форма массива. И печать заголовка каждого объекта с помощью функции forEach
.
<%- include("partials/header")%><title></title></head>
<%linklist.forEach(function(link){%>
<a href="<%=link.url%>" class="btn" target="_blank"><%=link.title%></a>
<%})%><%- include("partials/footer")%>
Моя схема для user
и urllist
- это
const urllistSchema = new mongoose.Schema({
title: String,
url: String,
user_id: {
type: mongoose.Schema.Types.ObjectId,
ref: "user"
}
});
const urllist = mongoose.model("urllist", urllistSchema);
const urlslistSchema = urllist.schema;
const linktrSchema = new mongoose.Schema({
email: String,
username: String,
password: String,
urlslist: [{
type: mongoose.Schema.Types.ObjectId,
ref: "urllist",
}]
});
const user = mongoose.model("user", linktrSchema);