<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem ejs</title>
<link>https://forum.pasja-informatyki.pl/tag/ejs</link>
<description>Powered by Question2Answer</description>
<item>
<title>ejs nie działa w środku tagów HTML</title>
<link>https://forum.pasja-informatyki.pl/574276/ejs-nie-dziala-w-srodku-tagow-html</link>
<description>

&lt;pre class=&quot;brush:plain;&quot;&gt;
        &amp;lt;form&amp;gt;
            &amp;lt;label for=&quot;sort&quot; class=&quot;form-label&quot;&amp;gt;Sortuj wg&amp;lt;/label&amp;gt;
            &amp;lt;select name=&quot;sort&quot; id=&quot;sort&quot; class=&quot;form-control&quot;&amp;gt;
                &amp;lt;option value=&quot;&quot;&amp;gt;Domyślnie&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;name&quot; &amp;lt;%- query.sort === 'name' ? 'selected' : '' %&amp;gt;&amp;gt;A-Z&amp;lt;/option&amp;gt;
                &amp;lt;option value=&quot;employeesCount&quot;&amp;gt;Pracowników&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
            &amp;lt;button class=&quot;btn btn-primary mt-3&quot;&amp;gt;Zastosuj&amp;lt;/button&amp;gt;
             
        &amp;lt;/form&amp;gt;&lt;/pre&gt;



&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Mam problem z wyrażeniem ejs w pliku .ejs - kiedy próbuję wpisać takie&amp;nbsp;wyrażenie do dowolnego tagu HTML, w ogóle nie wykrywa mi tego jako wyrażenie ejs (i nie podświetla w ten sposób składni) tylko prawdopodobnie jako niepoprawną składnię HTML. Teoretycznie ten sposób zapisu raczej powinien działać, ale z jakiegoś powodu jest traktowany (chyba) jako zła składnia HTML-a. Chodzi mi o zapis ejs w środku drugiego tagu &amp;lt;option&amp;gt; (5. linia kodu).
&lt;br&gt;
Dodam, że składania ejs w tym samym pliku działa jeśli piszę jakieś wyrażenie ejs &lt;span style=&quot;text-decoration: underline;&quot;&gt;poza tagami HTML&lt;/span&gt;. Czym to może być spowodowane?
&lt;br&gt;
Korzystam w wersji ejs&amp;nbsp;3.1.6.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/574276/ejs-nie-dziala-w-srodku-tagow-html</guid>
<pubDate>Sun, 06 Nov 2022 11:34:40 +0000</pubDate>
</item>
<item>
<title>Wyśrodkowanie tekstu i obrazka do linii</title>
<link>https://forum.pasja-informatyki.pl/553645/wysrodkowanie-tekstu-i-obrazka-do-linii</link>
<description>

&lt;p&gt;Po prawej stronie w menu dodałem awatar użytkownika, lecz przez to tekst (nav-link) błędnie się ułożył. Ktoś jakieś pomysły jak temu zaradzić?&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=12272077404107075264&quot; style=&quot;height:33px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;HTML:&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
&amp;lt;li class=&quot;nav-item dropdown&quot;&amp;gt;
    &amp;lt;a class=&quot;nav-link dropdown-toggle hrefWhite&quot; role=&quot;button&quot; data-bs-toggle=&quot;dropdown&quot;&amp;gt;
        Zalogowano jako &amp;lt;%= 'CENZURA' === user.id ? 'admin ' : '' %&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;%= user.username %&amp;gt;#&amp;lt;%= user.discriminator %&amp;gt;&amp;lt;/strong&amp;gt;
    &amp;lt;/a&amp;gt;
&amp;lt;/li&amp;gt;

&amp;lt;img src=&quot;https://cdn.discordapp.com/avatars/&amp;lt;%= user.id %&amp;gt;/&amp;lt;%= user.avatar %&amp;gt;.png?size=512&quot; id=&quot;avatar&quot; alt=&quot;&quot;&amp;gt;&lt;/pre&gt;



&lt;p&gt;CSS:&lt;/p&gt;



&lt;pre class=&quot;brush:css;&quot;&gt;
#avatar {
    border-radius:35%;
    height:52px;
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/553645/wysrodkowanie-tekstu-i-obrazka-do-linii</guid>
<pubDate>Thu, 28 Oct 2021 09:50:52 +0000</pubDate>
</item>
<item>
<title>Nie może odczytać wartości, a wyświetlić może - EJS, bug compilatora?</title>
<link>https://forum.pasja-informatyki.pl/537056/nie-moze-odczytac-wartosci-a-wyswietlic-moze-ejs-bug-compilatora</link>
<description>

&lt;p&gt;Witam, mam dziwny problem. Mam następujący kod w EJS&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
                     if(!tournamentsList){%&amp;gt;
                        Brak zaplanowanych turniejów
                    &amp;lt;%}else if(tournamentsList.length!==0){
                        const today = new Date();
                        let count=0;
                        for(i=0; i&amp;lt;tournamentsList.length ; i++){ 
                            console.info(tournamentsList[i].date)
                            const date = tournamentsList[i].date;
                            const peaple = getPeapleCount(tournamentsList[i].name);&lt;/pre&gt;



&lt;p&gt;console.info wyświetla prawidłowo:&lt;/p&gt;



&lt;blockquote&gt;


&lt;p&gt;2021-04-07T16:47:00.000Z&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;Jednak następna linijka już się sypie, a co więcej błąd mówi o undefined, gdzie przecież na górze w kodzie widać że jest na to warunek (i przechodzi bo jak widać mogę wyświetlić). Błąd:&lt;/p&gt;



&lt;blockquote&gt;


&lt;p&gt;TypeError: C:\Users\User\Desktop\bilard\views\tournaments.ejs:42
&lt;br&gt;
&amp;nbsp; &amp;nbsp; 40| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/header&amp;gt;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; 41| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;br&amp;gt;Poniżej znajduje się lista zaplanowanych na najbliższy czas turniejów. Organizowane są one w naszym klubie. Osoby chętne do uczestnictwa, muszą jedynie zapisać się, a samą płatność dokonać gótówką na miejscu w dniu turnieju.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
&lt;br&gt;
&amp;nbsp;&amp;gt;&amp;gt; 42| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;%
&lt;br&gt;
&amp;nbsp; &amp;nbsp; 43| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; function checkSubscribe(tournamentname,username){
&lt;br&gt;
&amp;nbsp; &amp;nbsp; 44| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; let found=false;
&lt;br&gt;
&amp;nbsp; &amp;nbsp; 45| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(typeof usersInTournamentsList != &quot;undefined&quot;){&lt;/p&gt;



&lt;p&gt;Cannot read property 'date' of undefined
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at eval (eval at compile (C:\Users\User\Desktop\bilard\node_modules\ejs\lib\ejs.js:662:12), &amp;lt;anonymous&amp;gt;:75:51)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at tournaments (C:\Users\User\Desktop\bilard\node_modules\ejs\lib\ejs.js:692:17)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at tryHandleCache (C:\Users\User\Desktop\bilard\node_modules\ejs\lib\ejs.js:272:36)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at View.exports.renderFile [as engine] (C:\Users\User\Desktop\bilard\node_modules\ejs\lib\ejs.js:489:10)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at View.render (C:\Users\User\Desktop\bilard\node_modules\express\lib\view.js:135:8)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at tryRender (C:\Users\User\Desktop\bilard\node_modules\express\lib\application.js:640:10)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at Function.render (C:\Users\User\Desktop\bilard\node_modules\express\lib\application.js:592:3)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at ServerResponse.render (C:\Users\User\Desktop\bilard\node_modules\express\lib\response.js:1012:7)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at ServerResponse.res.render (C:\Users\User\Desktop\bilard\node_modules\express-flash\lib\express-flash.js:29:16)
&lt;br&gt;
&amp;nbsp; &amp;nbsp; at C:\Users\User\Desktop\bilard\server.js:80:17
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;Czy to jest jakiś błąd w ejs? Bo zauwazyłem (bo mam już to drugi raz), że jak zmienię&amp;nbsp;nazwę&amp;nbsp;tej zmiennej przy wysyłaniu&amp;nbsp;i odnowa pozmieniam wszędzie na tą drugą nazwę, to się wszystko naprawia - tak jakby gdzieś były błędne dane przechowywane i potrzebny by był&amp;nbsp;jakiś twardy rebuild, żeby wszystkie pliki się odświeżyły, da się tak w node? Reset kompa też nie pomaga, a nie chce mi się, naprawiać takich rzeczy w taki dziwny sposób, że od nowa zmienną robie i wszedzie nazwe zmieniam.&lt;/p&gt;



&lt;p&gt;Próbowałem, też zamiast !tournamentsList to typeof == undefined i też nic to nie zmienia.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Edit: wstawiam cały skrypt w ejs:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
                    &amp;lt;%
                    function checkSubscribe(tournamentname,username){
                        let found=false;
                        if(typeof usersInTournamentsList != &quot;undefined&quot;){
                            for(i=0 ; i&amp;lt;usersInTournamentsList.length ; i++){
                                if(usersInTournamentsList[i].tournamentname===tournamentname){
                                    if(usersInTournamentsList[i].username===username){
                                        found=true;
                                    }
                                }
                            }
                        }   
                        return found;
                    }
                    function getPeapleCount(tournamentname){
                        let count=0;
                        if(typeof usersInTournamentsList != &quot;undefined&quot;){
                            for(i=0 ; i&amp;lt;usersInTournamentsList.length ; i++){
                                if(usersInTournamentsList[i].tournamentname===tournamentname)
                                    count++;
                            }
                        }   
                        return count;
                    }
                    function changeDateNumber(number){
                        if(number&amp;lt;10)
                            number=&quot;0&quot;+number;
                        return number;
                    }
                    if(messages.subscribed){ %&amp;gt;
                        &amp;lt;div class=&quot;articlecenter&quot;&amp;gt;
                            &amp;lt;b&amp;gt; &amp;lt;%= messages.subscribed %&amp;gt; &amp;lt;/b&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;% }
                    if(!tournament){%&amp;gt;
                        Brak zaplanowanych turniejów
                    &amp;lt;%}else if(tournament.length!==0){
                        const today = new Date();
                        let count=0;
                        for(i=0; i&amp;lt;tournament.length ; i++){ 
                            console.info(tournament)
                            const date = tournament[i].date;
                            const peaple = getPeapleCount(date);
                            if(date &amp;lt; today){
                                count++;%&amp;gt;
                                &amp;lt;div class = &quot;tournament&quot;&amp;gt;
                                    &amp;lt;b&amp;gt;&amp;lt;%= tournament[i].names %&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;b&amp;gt;&amp;lt;%= changeDateNumber(date.getDate())+&quot;.&quot;+changeDateNumber(date.getMonth())+&quot;.&quot;+date.getFullYear()+&quot; &quot;+changeDateNumber(date.getHours())+&quot;:&quot;+changeDateNumber(date.getMinutes())%&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;b&amp;gt;Poziom: &amp;lt;/b&amp;gt;&amp;lt;%=tournament[i].level%&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;img height=&quot;70&quot; src=&quot;img/&amp;lt;%=tournament[i].level%&amp;gt;.png&quot;/&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;b&amp;gt;Koszt wstępu:&amp;lt;/b&amp;gt; &amp;lt;%= tournament[i].cost %&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;b&amp;gt;Nagroda:&amp;lt;/b&amp;gt; &amp;lt;%= tournament[i].reward %&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;b&amp;gt;Liczba osób:&amp;lt;/b&amp;gt; &amp;lt;%=peaple%&amp;gt;/&amp;lt;%= tournament[i].maxpeaple%&amp;gt; 
                                    &amp;lt;%if(peaple&amp;gt;=tournament[i].maxpeaple || checkSubscribe(tournament[i].name,user.username)){ %&amp;gt; 
                                    &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
                                    &amp;lt;form action=&quot;/turnieje&quot; method=&quot;POST&quot;&amp;gt;
                                        &amp;lt;input type=&quot;hidden&quot; name = &quot;tournamentname&quot; value=&quot;&amp;lt;%= tournament[i].name %&amp;gt;&quot;/&amp;gt;
                                        &amp;lt;input type=&quot;submit&quot; value=&quot;Zapisz się&quot;/&amp;gt;
                                    &amp;lt;/form&amp;gt;
                                &amp;lt;/div&amp;gt;
                                &amp;lt;%}
                            }
                        }
                        if(count===0){ %&amp;gt;
                            Brak zaplanowanych turniejów
                        &amp;lt;%}
                    } %&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/537056/nie-moze-odczytac-wartosci-a-wyswietlic-moze-ejs-bug-compilatora</guid>
<pubDate>Mon, 12 Apr 2021 12:21:46 +0000</pubDate>
</item>
<item>
<title>Strona główna aplikacji ejs nie aktualizuje się natomiast wszystkie inne podstrony działają poprawnie.</title>
<link>https://forum.pasja-informatyki.pl/527039/strona-aplikacji-aktualizuje-natomiast-wszystkie-podstrony-dzialaja-poprawnie</link>
<description>

&lt;p&gt;Cześć,&lt;/p&gt;



&lt;p&gt;W mojej aplikacji nodejs z silnikiem widoków ejs główna strona nie aktualizuje się natomiast wszystkie inne podstrony działają poprawnie. Mam te błąd już od kilku dni i nie wiem co zrobić. W każdej przeglądarce działa to tak samo. Wszędzie czyściłem ciasteczka i cache, ale nic nawet w samej aplikacji do dałem metodę ejs.clearCache() i dalej nie działa.&lt;/p&gt;



&lt;p&gt;tutaj umieszczam kod z app.js, index.js i server.js&amp;nbsp;&amp;nbsp;:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;app.js&quot;&gt;
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const flash = require('connect-flash');
const session = require('express-session');
const routes = require('./routes/index');
const errorControllers = require('./controllers/ErrorControllers');
const sanitizer = require('sanitize').middleware;
const ejs = require('ejs');

const app = express();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());

app.use(session({
    secret: 'sendEmail',
    resave: true,
    saveUninitialized: true,
    cookie: {}
}));

app.use(flash());

app.use('/', routes);

app.use(sanitizer);
app.use(errorControllers.notFound);
app.use(errorControllers.catchErrors);

ejs.clearCache();

module.exports = app;&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;index.js&quot;&gt;
const express = require('express');
const router = express.Router();

const PagesControllers = require('../controllers/PagesControllers');
const ApplicationController = require('../controllers/ApplicationController');
const { catchAsync } = require('../controllers/ErrorControllers');

router.get('/', PagesControllers.home);

// subpages
router.get('/subpages/portfolio.html', PagesControllers.po...);

router.get('/subpages/reviews.html', PagesControllers.rev...);

router.get('/subpages/web-pages.html', PagesControllers.we...);

router.get('/subpages/ux-design.html', PagesControllers.ux...);

router.get('/subpages/seo.html', PagesControllers.s...);

router.get('/subpages/online-shops.html', PagesControllers.on...);

router.get('/subpages/landing-page.html', PagesControllers.la...);

router.post('/src/account.js',
    ApplicationController.sanitize,
    ApplicationController.validate,
    ApplicationController.checkValidation,
    catchAsync(ApplicationController.store)
);

module.exports = router;
&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;server.js&quot;&gt;
const app = require('./app');

app.set('port', 3000);

const server = app.listen(app.get('port'));&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;funkcja renderująca główną stronę&quot;&gt;
exports.home = (req, res) =&amp;gt; {
    res.render('home', {
        formMessage: req.flash('form'),
        title: '',
        description: '',
        prefix: '',
    });
};&lt;/pre&gt;



&lt;p&gt;Jak by było jeszcze coś potrzebne to piszczie.&lt;/p&gt;



&lt;p&gt;I z góry dziękuję.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/527039/strona-aplikacji-aktualizuje-natomiast-wszystkie-podstrony-dzialaja-poprawnie</guid>
<pubDate>Tue, 26 Jan 2021 13:55:30 +0000</pubDate>
</item>
<item>
<title>EJS z Node.js a renderowanie dodatkowego pliku</title>
<link>https://forum.pasja-informatyki.pl/505913/ejs-z-node-js-a-renderowanie-dodatkowego-pliku</link>
<description>

&lt;p&gt;Witam, chce wyrenderować plik ejs który ma &quot;includowany&quot; do siebie inny plik ejs, główny plik ejs jest w głównym folderze, ten includowany jest w podfolderze&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;kod server.js&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const express = require('express');
const session = require('express-session');
const path = require('path');
let ejs = require('ejs');
const fs = require('fs');
const app = express();

app.set('views',path.join(__dirname + '/ejselements'))
const http = require('http').createServer(app);

let HTMLindex = ejs.compile(fs.readFileSync('index.ejs', 'utf-8'));

app.get('/', function(req, res){
    
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.end(HTMLindex());
    
});&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Błąd brzmi &quot;Could not find the include file &quot;userbar&quot;&quot;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;index.ejs z głównego folderu ma linijke&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
 &amp;lt;%- include('userbar'); -%&amp;gt;&lt;/pre&gt;



&lt;p&gt;plik userbar.ejs&amp;nbsp;w podfolderze ejselements ma zawartosc&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
&amp;lt;div class=&quot;user-bar&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/505913/ejs-z-node-js-a-renderowanie-dodatkowego-pliku</guid>
<pubDate>Thu, 27 Aug 2020 12:38:55 +0000</pubDate>
</item>
<item>
<title>Problem z node.js i metodą POST</title>
<link>https://forum.pasja-informatyki.pl/487769/problem-z-node-js-i-metoda-post</link>
<description>

&lt;p&gt;W&amp;nbsp; ramach nauki tworzę aplikację dodającą&amp;nbsp;książki do biblioteki. Korzystam z node, express, ejs oraz express-ejs-layouts.&amp;nbsp;Będąc na stronie startowej użytkownik wybiera opcję dodania nowej książki. Wpisując adres url ręcznie np.&amp;nbsp;http://localhost:5000/add wszystko działa poprawnie (ładuję się kolejna strona aplikacji). Jednak po naciśnięciu na konkretny element, którego zadaniem jest dodanie kolejnej książki pojawia się problem:&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=4342293429315905319&quot; style=&quot;height:199px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Zamieszczam kod z pliku&amp;nbsp;app.js:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const express = require('express');
const expressLayouts = require('express-ejs-layouts');

const app = express();

app.use(expressLayouts);
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/views'));

app.use('/', require('./routes/index'));
app.use('/add', require('./routes/index'));
app.use('/library', require('./routes/index'));

const PORT = process.env.PORT || 5000;

app.listen(PORT, console.log(`Server started on port ${PORT}`));&lt;/pre&gt;



&lt;p&gt;index.js w folderze routes:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const express = require('express');
const router = express.Router();

router.get('/', (req, res) =&amp;gt; res.send('hello world'));
router.get('/add', (req, res) =&amp;gt; res.render('add'));
router.get('/library', (req, res) =&amp;gt; res.render('library'));

module.exports = router;&lt;/pre&gt;



&lt;p&gt;index.ejs w folderze views:&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;form&amp;nbsp;action=&quot;/add&quot;&amp;nbsp;method=&quot;POST&quot;&amp;nbsp;class=&quot;left-side&quot;&amp;gt;...&amp;lt;/form&amp;gt;&lt;/pre&gt;



&lt;p&gt;oraz mainPage.js w folderze views:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const leftSide = document.querySelector('.left-side');

leftSide.addEventListener('click', () =&amp;gt; { leftSide.submit() });&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/487769/problem-z-node-js-i-metoda-post</guid>
<pubDate>Tue, 12 May 2020 08:35:21 +0000</pubDate>
</item>
<item>
<title>Zamiana kodu z PUG na EJS</title>
<link>https://forum.pasja-informatyki.pl/437510/zamiana-kodu-z-pug-na-ejs</link>
<description>

&lt;p&gt;Hej, potrafi ktoś skonwertować ten kawałek kodu napisanego w PUG do poprawnego kodu EJS? ponieważ żaden converter nie daje rady.&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
     if (Message.length)
                .lightbox(v-show=&quot;showFeedback&quot;)
                    .lightbox__content
                        h2.lightbox__header #{ Message }
                        .lightbox__actions.lightbox__actions--centered
                            button.btn.btn--primary(@click=&quot;closeFeedbackLightbox&quot;) Close&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;EDIT: Trochę wysiłku i dałem jakoś radę sam.. Dla kogoś kto będzie kiedyś szukał coś podobnego:&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;% if (Message.length) { %&amp;gt;
 &amp;lt;div class=&quot;lightbox&quot; v-show=&quot;showFeedback&quot;&amp;gt;
  &amp;lt;div class=&quot;lightbox__content&quot;&amp;gt;
    &amp;lt;h2 class=&quot;lightbox__header&quot;&amp;gt; &amp;lt;%= Message %&amp;gt; &amp;lt;/h2&amp;gt;
    &amp;lt;div class=&quot;lightbox__actions lightbox__actions--centered&quot;&amp;gt;
      &amp;lt;button class=&quot;btn btn--primary&quot; @click=&quot;closeFeedbackLightbox&quot;&amp;gt;Close&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;% } %&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/437510/zamiana-kodu-z-pug-na-ejs</guid>
<pubDate>Fri, 28 Jun 2019 17:35:15 +0000</pubDate>
</item>
<item>
<title>Renderowanie DOMELementu zamiast String EJS</title>
<link>https://forum.pasja-informatyki.pl/400539/renderowanie-domelementu-zamiast-string-ejs</link>
<description>

&lt;p&gt;Ostatnio przygotowuje parę pomocnych helpersów do projektów opartych na expressie. Związku z tym próbuje ujarzmić jądro EJS.&lt;/p&gt;



&lt;p&gt;To zacznijmy od kodu, setup serwisu:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
// server.js
const express             = require('express');
const app                 = express();
const bodyParser          = require('body-parser');
const Provider          = require('./providers/provider');
const EnviromentLoader  = require('./loaders/EnviromentLoader');
const ServicesLoader    = require('./loaders/ServicesLoader');
const SecurityManager   = require('./utils/SecurityManager');

EnviromentLoader.setEnviroment(app);
ServicesLoader.loadServices(app);

app.engine('ejs', require('express-ejs-extend'));
app.use(express.static(__dirname + '/static'));

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

Provider.loadProviders(app);

app.use(app.get('SessionProvider').createSession());
app.use('/', SecurityManager(app.get('config')));

require('./routing/Routes')(app);

var port = process.env.PORT || 8100;

app.listen(port);
console.log('Projekt_random_cup is running ' + port);&lt;/pre&gt;



&lt;p&gt;Provider dostarcza EJSExtension do midleware app.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const SessionProvider = require('./SessionProvider');
const EJSExtension = require('../utils/EJSExtension');

const Provider = {
  loadProviders: function(app) {
    EJSExtension.setConfig(app.get('config'));
    app.set('SessionProvider', SessionProvider);
    app.set('EJSExtension', EJSExtension);
  }
}

module.exports = Provider;&lt;/pre&gt;



&lt;p&gt;Następnie EJSExtension&amp;nbsp;dostarcza metody pomocnicze:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const EJSExtension = {
  config: '',
  engine: {},
  fs: {},

  setConfig: function(config) {
    this.config = config;
    this.engine= require('ejs');
    this.fs = require('fs');
  },

  assets: function(file) {
    const basePath = this.config.assetsSetings.basic_url;
    const cssUrl = 'css/pages/';
    const url = `${basePath}${cssUrl}${file}.css`;
    var compiled = this.engine.compile(this.fs.readFileSync(__dirname + '/../views/helpers/assets/css.ejs', 'utf8'));
    var html = compiled({ url: url });
    return html;
  }
}
module.exports = EJSExtension;&lt;/pre&gt;



&lt;p&gt;Które baseControler dostarcza do innych kontrolerów, a te do templateRender (EJS)&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
&amp;lt;% extend('layouts/template') %&amp;gt;
  &amp;lt;section class=&quot;mainPage__topContainer&quot;&amp;gt;
  &amp;lt;div class=&quot;mainPage__slider&quot;&amp;gt;
    &amp;lt;% include components/notice/slider %&amp;gt;
  &amp;lt;/div&amp;gt;
    &amp;lt;% if (!session.isLogged) { %&amp;gt;
      &amp;lt;div class=&quot;mainPage__form&quot;&amp;gt;
      &amp;lt;% include components/forms/login %&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;% } %&amp;gt;
&amp;lt;/section&amp;gt;

&amp;lt;%= helpers.assets('main') %&amp;gt;&lt;/pre&gt;



&lt;p&gt;I tu wszystko działa, ale nie wrzuca mi domElement ale String, według moje spostrzeżenia (patrząc na console,logi jakie miała biblioteka)&amp;nbsp; w oógle nie leci do templateRender, tylko do innej metody (jeszcze nie rozkminiłem gdzie), pytanie czy jest taka możlwość by zaczęło robić to co ma robić. Wiem, że w twig-u da się takie fajne ficzerki robić.&lt;/p&gt;



&lt;p&gt;EDIT: Problem rozwiązany, należało zmienić znak w znaczniku.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
&amp;lt;%- helpers.assets('main') %&amp;gt;&lt;/pre&gt;



&lt;p&gt;A nigdziie w dokumentacji tego nie napisali xd.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/400539/renderowanie-domelementu-zamiast-string-ejs</guid>
<pubDate>Sat, 15 Dec 2018 22:29:53 +0000</pubDate>
</item>
</channel>
</rss>