Express.js & EJS.js
Содержание
- Express.js
- Start server
- Routes
- Получить данные из запроса( GET )
- Получить данные из запроса( POST )
- EJS
- Подключение
- Использование переменных
- Вывод вложенных данных из массива на шаблоне
- INCLUDE - включение кусков HTML
Express.js
Start server
// Библиотеки
var express = require('express'); // express framework
// иниц. Express-framework
var app = express();
// Запуск сервера
app.listen(3000);
Routes
// отправит обычный текст
app.get('/', function(req, res){ res.end('sss'); })
app.get('/shit/', function(req, res){ res.end('sss1'); })
app.get('/shit/:id', function(req, res){ res.end('ID->' + req.params.id); })
// отправить страницу
app.get('/', function(req, res){ res.sendFile(__dirname + '/index.html'); })
// Генерим вьху(путь к вьюхе не указываем так как по дефолту папка должна быть "views")(profile - profile.ejs - это вьюха)
// тут передаем параметр на страницу под переменной person - ROUTING
app.get('/', function(req, res){ res.render('profile', { person: "Bad dude" } ); })
Получить данные из запроса( GET )
function TestGET(req, res)
{
console.log(req.query); // получить массив который пришел в запросе
console.log(req.query.shit); // получить значение из массива который пришел в запросе
res.render('test', {shit:req.query.shit})
}
Получить данные из запроса( POST)
// установить пакет для парса данных
npm install body-parser // -save
// обозначить его в коде (app.js)
var bodyParser = require('body-parser');
// middleware - парсер для POST-запросов
var urlencodedParser = bodyParser.urlencoded({ extended: false })
// маршрут
app.post('/shit/', urlencodedParser , function(req,res){ TestPOST(req, res); })
// функция
function TestPOST(req, res)
{
console.log(req.body); // показать массив
res.render('success', {data: req.body}); // выслать массив на шаблон - "success"
}
// шаблон - "success"
// Чтобы увидеть полностью массив - тогда console.log(req.body)
// На шаблоне - через точку
<%= data.name %>
EJS.js
Подключение
// установка в проект(cmd)
npm install ejs // -save for dependecies
// установим ejs-шаблонизатор как генератор вьюх(в коде app.js)
app.set('view engine', 'ejs');
Использование переменных
// -> html
<h2> <%= person %> </h2> // <%= ... %> - когда вывод переменной
<% data.hobbies.forEach(function(item){ %> // <% ... %> - когда валит JS
Вывод вложенных данных из массива на шаблоне
// массив такой - app.js
var data = { age: 21,
name: 'BRaker',
hobbies: ['eat','shit']
}
// это делаеться через цыкл forEach - profile.ejs
<% data.hobbies.forEach(function(item){ %>
<%= item %>
<% }); %>
INCLUDE - включение кусков HTML
// в папке views создаем папку , название не имеет значение(for ex: directory "elem"),
// \views -
// profile.ejs
// elem -> nav.ejs
// и в шаблоне пишем(поиск в папке "views"):
// --- profile.ejs
<% include elem/nav.ejs %>