Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Редирект на Nodejs (https://javascript.ru/forum/node-js-io-js/69803-redirekt-na-nodejs.html)

Audaxviator 19.07.2017 13:17

У вас путь к шаблонам прописан в папку views. Убедитесь, что эта папка существует в корне проекта и что ваш courses.jade лежит в этой папке.

Audaxviator 19.07.2017 13:24

А, ешкин кот. Вот это:

app.get('/', routes.index);

app.get('/courses', function(req, res){
  res.render('courses.jade');
});

Должно быть перед еррорХендлером.

АнонимныйПарень 19.07.2017 13:52

Спасибо, огромное! Ты настоящий друг!:) Помог!!! +99999999999 в карму!

АнонимныйПарень 19.07.2017 14:16

Только смотри: если все мои файлы находятся в папке views, то все работает. Но если в папке views есть папка tabs (в ней file.jade) и файл index.jade, то как мне правильно поставить путь к file.jade?

Что писать тут:
a(href='ЧТО ПИСАТЬ ТУТ?', style='color: white;') Ссылка

Что писать тут:

app.get('ЧТО ПИСАТЬ ТУТ?', function(req, res){
	res.render('ЧТО ПИСАТЬ ТУТ?');
});

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

Audaxviator 19.07.2017 15:40

Путь к шаблонам задан вот здесь -
app.set('views', path.join(__dirname, 'views'));
- от этого места и отсчёт. Соответственно:
res.render('tabs/file');

Что написано в строке запроса - не имеет значения. На клиенте написано href="/gfgfgfgfgfg" - на сервере то же самое - app.get('/gfgfgfgfgfg', ... Тут главное - придумывать что-нибудь разумное и соответствующее по смыслу, чтоб самому же и удобно было.

Шаблоны можно делить на слои (layouts) и миксины (mixins). Поэтому обычно создают папку templates, а в ней папки layouts, mixins и views, путь указывают так -
app.set('views', path.join(__dirname, 'templates/views'));
- а уж отсюда подгружаются - типа
extends ../layouts/default
и т.д. - составные части каждой страницы.
А при рендеринге расширение и не нужно - res.render('bla');

Audaxviator 19.07.2017 15:52

А, и все эти index тут не работают. Шаблонизатору до фени имя index, никакого приоритета оно не имеет. Какое имя написано в коде - res.render('blabla'); - тот файл и рендерится. Написано res.render('index') - будет index.jade
Ноде - не до фени: увидит в указанной папке файл index.js - будет его исполнять автоматически.

Audaxviator 19.07.2017 19:30

Я кое-что попробовал и справил выше.

АнонимныйПарень 22.07.2017 10:55

Cannot GET /tabs/courses

Вот что пишет! Не понимаю в чем ошибка

Audaxviator 22.07.2017 15:16

Хе. Догадываюсь, что эта строчка написана в запросе, в аргументе тэга - href="/tabs/courses"
Но я не медиум, конечно.
Если это так, то перечитайте внимательно мой предыдущий камент.
В Ноде есть одна замечательная вещь (тут много замечательных вещей, но и эта тоже): pathname запроса не связан непосредственно с обработчиком этого запроса. С в строке запроса чего-то написано, но обработчику безразлично - чего там написано. Он просто прикручен к этому "чего-то" в качестве обработчика в этой вот строчке после запятой
app.get('/hfhgjhlj/gfhf', ... ...);
но ему всё равно, чего там написано.


Часовой пояс GMT +3, время: 22:24.