Я пытаюсь создать страницу (в многосайтовом проекте с апострофом, чтобы для каждого сайта существовала уникальная страница) в / profile, или / account, или /account/profile.
Я создал следующее на /sites/lib/modules/account-profile/index.js
следующее и адаптировал его из Как Apostrophe обрабатывает запросы страница:
module.exports = {
afterConstruct: function(self) {
self.addDispatchRoutes();
},
construct: function(self, options) {
self.addDispatchRoutes = function() {
self.dispatch("/account/:profile", self.showPage);
};
self.showPage = function(req, callback) {
return (
req.params.profile,
(err, doc) => {
// handle err, if no err...
if (!doc) {
// Let Apostrophe render the 404 page
req.notFound = true;
}
req.template = self.renderer("profile", { doc: doc });
return callback(null);
}
);
};
}
};
после включения:
"account-profile": {
extend: "apostrophe-custom-pages"
}
в app.js
Проблема, с которой я столкнулся, заключается в том, что функция showPage никогда не запускается, когда я нажимаю, например, /account/profile.
Я понимаю, что: бит профиля для соответствия / бит аккаунта / профиля немного сомнителен, но я также не могу понять, как отобразить шаблон при выполнении чего-то вроде:
self.apos.app.get("/account/profile", async function(req, res, callback) {
req.template = self.renderer("profile", { doc: "hi" });
// now what?
});
Я предполагаю, что упускаю что-то довольно простое, но я довольно тщательно отсканировал документы и не могу найти этот пропущенный бит.