Skip to content

German-Stepanov/nodejs-output-view

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodejs-output-view

Препроцессор шаблонов PHP для nodejs

Поддерживает передачу чисел, строк, объектов и функций в файл html(php), например

var rows = [ {user_id: 11, user_name:'Андрей', user_family:'Иванов', user_active:1}, {user_id: 121, user_name:'Петр', user_family:'Петров', user_active:1}, {user_id: 13, user_name:'Алексей',user_family:'Сидоров', user_active:1}, {user_id: 142, user_name:'Сергей', user_family:'Алексеев', user_active:1}, {user_id: 15, user_name:'Герман', user_family:'Степанов', user_active:0}, ]; res.write( output.view({ //Название файла file: '/test.php', //Переменные data: { $count: 100, $title	: 'Тесты', $rows	: rows, width_10: function(str) { var count = 10; return (new Array( count ).join(' ') + str).substr(-count).replace(/ /g, ' '); } }, }) );

Поддерживает использование логических блоков if...elseif...else...endif, например

<?php if($key>10): ?>	... <?php elseif($key<5): ?>	... <?php else: ?>	... <?php endif; ?>

Поддерживает использование логических блоков foreach...endforeach, например

<?php foreach($rows as $key=>$value): ?>	... <?php endforeach; ?>

Поддерживает использование логических блоков for...endfor, например

<?php for($i=0; $i<10; $i++): ?>	... <?php endfor; ?>

Поддерживает использование логических блоков while...endwhile, например

<?php while($i<100): ?>	... <? $i++; ?> <?php endfor; ?>

Поддерживает любые переменные и выражения на js, например

<?=$название?> ... <?=$переменная1 * переменная2?>

Поддерживает создание и использование переменных внутри кода HTML, например

<?	var $i=1; ?> ... <? $i++; ?> <?=$i?>

Очищает код от всех комментариев, пробелов и переносов строк (опционально) Автоматически подсвечиваются php-тэги в любом текстовом редакторе

Пример подключения (файл _demo/server.js)

//Конфигурация (глобальная) myConfig = {}; //Конфигурация сервера myConfig.server = { port: 2020, isDebug: true,//Сообшения сервера }; //Подключение модуля var output = require('output-view')({ dir	: './',//Папка отображений clear	: true,//Очищать код от комментариев isDebug: false,//Режим отладки }); var controller = function (req, res) { var url = req.url.split('/'); var rows = [ {user_id: 11, user_name:'Андрей', user_family:'Иванов', user_active:1}, {user_id: 121, user_name:'Петр', user_family:'Петров', user_active:1}, {user_id: 13, user_name:'Алексей',user_family:'Сидоров', user_active:1}, {user_id: 142, user_name:'Сергей', user_family:'Алексеев', user_active:1}, {user_id: 15, user_name:'Герман', user_family:'Степанов', user_active:0}, ]; res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); /* res.write( output.view({ text	: 'Hello, World!',  }) ); */ res.write( output.view({ //Название файла file: '/test.php', //Переменные data: { $test: url[1], $title	: 'Тесты', $rows	: rows, width_10: function(str) { var count = 10; return (new Array( count ).join(' ') + str).substr(-count).replace(/ /g, '&nbsp;'); } }, }) ); res.end(); } //Формируем задачу var app = function(req, res) { var url = req.url.split('/'); //Заглушка запроса favicon.ico if (url[1]=='favicon.ico') return; //Установим метку времени if (myConfig.server.isDebug) { console.log('\nПолучен запрос req.url', req.url); console.time('app'); } //Вызываем контроллер обработки запроса controller(req, res); //Выводим общее время if (myConfig.server.isDebug) console.timeEnd('app'); }; //Создаем и запускаем сервер для задачи var server = require('http').createServer(app); server.listen(myConfig.server.port); //Отображаем информацию о старте сервера if (myConfig.server.isDebug) console.log('Server start on port ' + myConfig.server.port + ' ...');

Примеры формирования кода (файл _demo/test.php)

Демонстрация операторов цикла foreach...endforeach

Код:

<? $row={key1:1, key2:'text1', key3:2, key4:'text2'}; ?> <?php foreach($row as $key=>$value): ?>	<div>$key=<?=$key?> $value=<?=$value?></div> <?php endforeach; ?>

Формирует результат:

$key=key1 $value=1 $key=key2 $value=text1 $key=key3 $value=2 $key=key4 $value=text2

Демонстрация операторов цикла while...endwhile

Код:

<? $i=10; ?> <?php while ($i>3): ?>	<div>$i=<?=$i?></div> <? $i--; ?> <?php endwhile; ?>

Формирует результат:

$i=10 $i=9 $i=8 $i=7 $i=6 $i=5 $i=4

Демонстрация операторов цикла for...endfor

Код:

<?php for($i=0; $i<10; $i++): ?>	<div>$i=<?=$i?></div> <?php endfor; ?>

Формирует результат:

$i=0 $i=1 $i=2 $i=3 $i=4 $i=5 $i=6 $i=7 $i=8 $i=9 

Код:

<?php for($i=0; $i<10; $i=$i+2): ?>	<div>$i=<?=$i?></div> <?php endfor; ?>

Формирует результат:

$i=0 $i=2 $i=4 $i=6 $i=8 

Код:

<?php for($i=10; $i>0; $i--): ?>	<div>$i=<?=$i?></div> <?php endfor; ?>

Формирует результат:

$i=10 $i=9 $i=8 $i=7 $i=6 $i=5 $i=4 $i=3 $i=2 $i=1 

Демонстрация условных операторов if...elseif...else...endif

Код:

<?php for($i=0; $i<10; $i++): ?> <?php if ($i==0): ?>	<div>$i=0 Первая строка</div> <?php elseif ($i>0 && $i<5 ): ?>	<div>$i=<?=$i?> Cтрока диапазона 1...4</div> <?php if ($i==2): ?>	<div>...точнее строка 2</div> <?php elseif ($i==4 ): ?>	<div>...точнее строка 4</div> <?php else: ?>	<div>...точнее строка 1 или 3</div> <?php endif; ?> <?php elseif ($i==9): ?>	<div>$i=9 Последняя строка</div> <?php else: ?>	<div>$i=<?=$i?> Cтрока диапазона 5...8</div> <?php if ($i==5): ?>	<div>...точнее строка 5</div> <?php elseif ($i==7 ): ?>	<div>...точнее строка 7</div> <?php else: ?>	<div>...точнее строка 6 или 8</div> <?php endif; ?> <?php endif; ?> <?php endfor; ?>

Формирует результат

$i=0 Первая строка $i=1 Cтрока диапазона 1...4 ...точнее строка 1 или 3 $i=2 Cтрока диапазона 1...4 ...точнее строка 2 $i=3 Cтрока диапазона 1...4 ...точнее строка 1 или 3 $i=4 Cтрока диапазона 1...4 ...точнее строка 4 $i=5 Cтрока диапазона 5...8 ...точнее строка 5 $i=6 Cтрока диапазона 5...8 ...точнее строка 6 или 8 $i=7 Cтрока диапазона 5...8 ...точнее строка 7 $i=8 Cтрока диапазона 5...8 ...точнее строка 6 или 8 $i=9 Последняя строка 

Демонстрация "передачи" объекта и функции в отображение

Код:

<div><?='Привет, Мир!'?></div> <br /> <div>Список участников:</div> <!--Таблица--> <div>----------------------------------</div> <div>|<?=width_10('ID')?>|<?=width_10('ИМЯ')?>|<?=width_10('ФАМИЛИЯ')?>|</div> <div>----------------------------------</div> <?php foreach($rows as $key=>$row): ?>	<div class="<?=$row['user_active'] ? '' : 'no_active'?>">|<?=width_10($row['user_id'])?>|<?=width_10($row['user_name'])?>|<?=width_10($row['user_family'])?>|</div> <?php endforeach; ?> <div>----------------------------------</div>

Формирует результат

Привет, Мир! Список участников: ---------------------------------- | ID| ИМЯ| ФАМИЛИЯ| ---------------------------------- | 11| Андрей| Иванов| | 121| Петр| Петров| | 13| Алексей| Сидоров| | 142| Сергей| Алексеев| | 15| Герман| Степанов| ---------------------------------- 

Тестирование

Пример серверного кода в папке "_demo". 

Запуск

node server 

Результат

http://localhost:2020 

About

Препроцессор шаблонов PHP для nodejs

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published