#ejs #koa #strapi
#ejs #koa #strapi
Вопрос:
В чем ошибка?
Я пытаюсь отобразить страницу с помощью strapi-hook-ejs, но это не работает, даже если я следовал всей официальной документации.
Выдает следующую ошибку [2020-10-13T03:34:15.198Z] ошибка TypeError: ctx.render не является функцией в Object.page (C:UsersnomanDesktopTestAPIapihomecontrollershome.js:11:20 ) при отправке (C:UsersnomanDesktopTestAPInode_moduleskoa-routernode_moduleskoa-composeindex.js:44:32 ) при следующем (C:UsersnomanDesktopTestAPInode_moduleskoa-routernode_moduleskoa-composeindex.js:45:18 ) при отправке (C:UsersnomanDesktopTestAPInode_moduleskoa-composeindex.js:42:32 ) в C:UsersnomanDesktopTestAPInode_modulesstrapilibmiddlewaresrouterutilsrouterChecker.js:79:28 при отправке (C:UsersnomanDesktopTestAPInode_moduleskoa-composeindex.js:42:32 ) в модуле.экспорт (C:UsersnomanDesktopTestAPInode_modulesstrapi-plugin-users-permissionsconfigpoliciespermissions.js:86:9) в processTicksAndRejections (internal/process/task_queues.js:97:5) в асинхронном режиме C:UsersnomanDesktopTestAPInode_modulesstrapi-utilslibpolicy.js:68:5 при асинхронной подаче (C:UsersnomanDesktopTestAPInode_moduleskoa-staticindex.js:59:5 ) при асинхронном C:UsersnomanDesktopTestAPInode_modulesstrapilibmiddlewaresxssindex.js:26:9 [2020-10-13T03:34:15.212Z] отладка GET /home / page (39 мс) 500 [2020-10-13T03:34:15.255Z] отладка GET /favicon.ico (1 мс) 200
Шаги для воспроизведения поведения
- Я установил strapi-hook-ejs (npm i strapi-hook-ejs —save)
- Создайте новый перехват.файл json в папке config. (./config/hook.json)
- Добавлен этот код
{
"ejs": {
"enabled": true,
"layout": false,
"viewExt": "ejs",
"partial": true,
"cache": false,
"debug": true
}
}
-
Создал папку views и файл home.ejs в ней (./views/home.ejs) с помощью этого кода
<h1><%=title%></h1>
-
Затем я создал новый контроллер и указал к нему маршрут.
module.exports = {
page: async ctx => {
return ctx.render('home', {title: 'My app title'});
},
};
- Теперь, когда я иду по этому маршруту, я получаю сообщение об ошибке.
Ожидаемое поведение должно отображать домашнюю страницу
Мой Package.json
{
"name": "source-api",
"private": true,
"version": "0.1.0",
"description": "A Strapi application",
"scripts": {
"develop": "strapi develop",
"start": "strapi start",
"build": "strapi build",
"strapi": "strapi"
},
"devDependencies": {},
"dependencies": {
"axios": "^0.20.0",
"strapi": "3.1.4",
"strapi-admin": "3.1.4",
"strapi-connector-mongoose": "3.1.4",
"strapi-hook-ejs": "^3.2.3",
"strapi-plugin-content-manager": "3.1.4",
"strapi-plugin-content-type-builder": "3.1.4",
"strapi-plugin-email": "3.1.4",
"strapi-plugin-upload": "3.1.4",
"strapi-plugin-users-permissions": "3.1.4",
"strapi-provider-upload-cloudinary": "^3.1.4",
"strapi-utils": "3.1.4"
},
"author": {
"name": "Nehal Ahmad"
},
"strapi": {
"uuid": "1034d7e9-73ba-49d4-8862-0d5d62ae7008"
},
"engines": {
"node": "12.x",
"npm": "6.x"
},
"license": "MIT"
}
Система
- Node.js версия: v12.18.1
- Версия NPM: 6.14.5
- Версия Strapi: 3.1.4
- База данных: Mongo db
- Операционная система: Windows 10 pro
Я пробовал это в последней версии strapi.
Ответ №1:
Я нашел ответ на forum.strapi.io от пользователя larsonnn