Маршрут с параметром возвращает "шаблон не найден", но существует

Codesight спросил: 13 июня 2018 в 07:38 в: node.js

У меня установлен маршрут, который работает так далеко, как он получает значение параметра, получает данные из json-файла.

Однако существует страница, если я попытаюсь возвратить представление с данными, чтобы я мог отображать его на странице, он просто возвращает "Ошибка: шаблон не найден: /projects/work/index.html"

Как визуализировать представление?

router.get('/projects/work/index/:id', function (req, res) {
   console.log(req.params.id); //Returns an ID ok  var id = req.params.id;
  var obj = require('./projectdata.json');  console.log(obj.items.filter(function (value) {return value.id === id;})[0].title); //Returns data ok
  var record = obj.items.filter(function (value) {return value.id === id;})[0];  res.render('/projects/work/index', record);
  });

2 ответа

dotnetdev4president ответил: 13 июня 2018 в 09:01

Убедитесь, что вы установили местоположение шаблонов. Стандарт должен установить его в "виды", но вы можете установить его на все:

app.set('views', __dirname + '/views');

Обязательно настройте механизм просмотра (например, ejs, jade или handlebars .. .)

app.set('view engine', 'ejs');

После этого вы сможете визуализировать представления:

response.render("index", {record});
Codesight ответил: 13 июня 2018 в 05:09
Шаблон существует и отображаются другие страницы, я использую nunjucks, и только тогда, когда у запроса есть параметр, он определяет, что это ошибки.
Codesight ответил: 13 июня 2018 в 05:23

Решив его, я опустил / отключил путь к файлу.

res.render('projects/work/index', {record});

Дополнительное видео по вопросу: Маршрут с параметром возвращает "шаблон не найден", но существует

Node JS Tutorial for Beginners #24 - Express Route Params

Node.js Tutorial for Beginners 21 - Express.js route parameter

Node.js - Tutorial - Routing