<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem express</title>
<link>https://forum.pasja-informatyki.pl/tag/express</link>
<description>Powered by Question2Answer</description>
<item>
<title>Serwer pod Pihole/unbound/nodejs/samba</title>
<link>https://forum.pasja-informatyki.pl/587676/serwer-pod-pihole-unbound-nodejs-samba</link>
<description>Szukam jakiegos poeasingowego komputera/se=rwera pod usługi wymienione w temacie&lt;br /&gt;
&lt;br /&gt;
ktos jest moze cos w stanie dobrego polecić? do 500zł</description>
<category>Sprzęt komputerowy</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/587676/serwer-pod-pihole-unbound-nodejs-samba</guid>
<pubDate>Wed, 30 Aug 2023 14:54:25 +0000</pubDate>
</item>
<item>
<title>Podpięcie datadoga pod serwer Express.js</title>
<link>https://forum.pasja-informatyki.pl/586737/podpiecie-datadoga-pod-serwer-express-js</link>
<description>Witam, szukam osoby (odpłatnie) która podpięła by mi datadoga do mojej strony www express.js, node.js. Metryki które mnie interesują to np. statystyki odwiedzin strony, liczba pobrań aplikacji itd.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Wiem że moge zrobić to sam ale raz ze nie ogarniam dokumentacji od nich, a dwa nie mam czasu na takie rzeczy.</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/586737/podpiecie-datadoga-pod-serwer-express-js</guid>
<pubDate>Wed, 19 Jul 2023 20:27:27 +0000</pubDate>
</item>
<item>
<title>Jaki hosting pod backend oraz frontend</title>
<link>https://forum.pasja-informatyki.pl/581293/jaki-hosting-pod-backend-oraz-frontend</link>
<description>Potrzebuje hostingu (VPS najpewniej) do hostowania backendu w node + express oraz frontu.&lt;br /&gt;
&lt;br /&gt;
Ciężko stwierdzić ruch strony.</description>
<category>Hostingi, domeny, usługi</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/581293/jaki-hosting-pod-backend-oraz-frontend</guid>
<pubDate>Thu, 02 Mar 2023 09:24:36 +0000</pubDate>
</item>
<item>
<title>Frontend w React oraz Backend Node (np Express) - Javascript, zasada działania</title>
<link>https://forum.pasja-informatyki.pl/575623/frontend-w-react-oraz-backend-node-np-express-javascript-zasada-dzialania</link>
<description>Cześć! Żeby zostać lepiej zrozumianym, rozbiję moje pytanie na punkty:&lt;br /&gt;
&lt;br /&gt;
1. Rozumiem, że można sobie utworzyć i wywołać - a potem odpalić serwer w Node, np za pomocą Express. Słucha on co się dzieje w domenie, na jakimś porcie.&lt;br /&gt;
&lt;br /&gt;
2. Rozumiem, że aplikacja React zostaje utworzona jako swój niezależny byt, że można ją wywołać na serwerze.&lt;br /&gt;
&lt;br /&gt;
3. Rozumiem, że można sobie zarówno na serwerze jak i po stronie klienta, na frondendzie tworzyć API, zapytania, komunikację. Rozumiem, że istnieje możliwość, aby utworzyć frontend w React na jednym porcie, a backend na innym - że istnieje coś takiego jak polityka CORS.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
NATOMIAST:&lt;br /&gt;
&lt;br /&gt;
Niestety, o dziwo, odpalając serwer w konsoli, pozwalając mu słuchać - niezależnie od tego czy frontend w React i backend w Node będą na tym samym porcie czy będą osobno na różnych, rozumiejąc że ten odpalony serwer sobie już funkcjonuje, w tym wszystkim nie potrafię dostrzec jak to się dzieje że on wie jak uruchomić część Reactową i wyświetlić ją. Jak to należy rozumieć, upraszczając, analogicznie do sytuacji że serwer rozumie jak odpalić np index.php (pomijając jakiekolwiek regexy) w głównym katalogu.</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/575623/frontend-w-react-oraz-backend-node-np-express-javascript-zasada-dzialania</guid>
<pubDate>Thu, 01 Dec 2022 10:36:35 +0000</pubDate>
</item>
<item>
<title>Duża ilość, dużych zdjęć w githubie</title>
<link>https://forum.pasja-informatyki.pl/574803/duza-ilosc-duzych-zdjec-w-githubie</link>
<description>Hej,&lt;br /&gt;
&lt;br /&gt;
Krótkie pytanko. Mam aplikacje postawioną na node.js + express.js w której mam możliwość wrzucania zdjęć. Tych zdjęć będzie dużo. Na starcie około 60-100. Te zdjęcia będą dość spore więc potrzeba sporo miejsca na nie. Cały projekt mam githubie i hostuje go przez Vercel (+ baza danych MongoDB w chmurze na Mongo Atlasie). &lt;br /&gt;
&lt;br /&gt;
I pytanie brzmi czy Github może robić za serwer dla tych wszystkich zdjęć? Jeśli ich będzie ponad 100 to będzie grube kilka GB. W jaki sposób inaczej mogę zrobić tak, że cały kod, mechanika będzie na githubie a zdjęcia będą wrzucały się na zewnętrzne strony/gdziekolwiek? W jaki sposób to ugryźć?</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/574803/duza-ilosc-duzych-zdjec-w-githubie</guid>
<pubDate>Mon, 14 Nov 2022 15:39:11 +0000</pubDate>
</item>
<item>
<title>NodeJS i Express - wyświetlanie obrazków z formularza</title>
<link>https://forum.pasja-informatyki.pl/566974/nodejs-i-express-wyswietlanie-obrazkow-z-formularza</link>
<description>

&lt;p&gt;Chciałbym wyświetlić obrazek za pomocą NodeJS i Expressa, ale nie mam pojęcia jak to zrobić. Szukałem różnych rozwiązań w internecie, ale nie jestem w stanie zrozumieć jak mogę zmodyfikować kod, tak, aby wyświetlał obrazek po wpisaniu URL do formularza. Potrafię pobrać dane z formularza jednak nie wiem, jak URL zamienić na normalny obrazek. Dzięki za wszelką pomoc :)&lt;/p&gt;



&lt;pre class=&quot;brush:css;&quot;&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;form action=&quot;dodaj&quot; method=&quot;POST&quot;&amp;gt;
        &amp;lt;p&amp;gt;
            URL: &amp;lt;input type=&quot;text&quot; name=&quot;url&quot;&amp;gt;
        &amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;
            Opis: &amp;lt;input type=&quot;text&quot; name=&quot;opis&quot;&amp;gt;
        &amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;
            &amp;lt;input type=&quot;submit&quot; value=&quot;Wyslij&quot; name=&quot;przycisk&quot;&amp;gt;
        &amp;lt;/p&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const express = require('express');
const app = express();
let date = new Date();

app.use(express.static('public'));
app.use(express.urlencoded({extended: true}));


app.post('/dodaj', (req, res) =&amp;gt; {
	if (req.body.url !== '' &amp;amp;&amp;amp; req.body.opis !== ''){
		res.send(req.body.url + &quot;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&quot; + req.body.opis + &quot;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&quot; + date);
	}
	else{
		res.send(&quot;Error! Zle wypelniony formularz&quot;);
	}
});

app.listen(3000);
&lt;/pre&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/566974/nodejs-i-express-wyswietlanie-obrazkow-z-formularza</guid>
<pubDate>Wed, 25 May 2022 16:23:55 +0000</pubDate>
</item>
<item>
<title>Architektura aplikacji backendowej - node/nestjs</title>
<link>https://forum.pasja-informatyki.pl/562801/architektura-aplikacji-backendowej-node-nestjs</link>
<description>Cześć. Przychodzę do was z pytaniem dot. formy budowy aplikacji back-endowej. Chodzi o to, że postanowiłem, aby stworzyć dwie osobne aplikacje backendowe - jedna służąca do zarządzania urzytkownikami oraz administracją, a druga służąca klientowi - zarządzanie jego profilem, ogłoszeniami itp.&lt;br /&gt;
&lt;br /&gt;
Postanowiłem podzielić te aplikacje, ze względu na ich obszerność oraz chociażby zupełnie osobne formy autoryzacji i autentykacji użytkowników. Problem jest związany z tym, że nie za bardzo wiem jak to zrealizować. Każda z aplikacji korzysta z osobnej bazy danych. Aplikacja dla administracji musi łączyć się ze swoją bazą oraz bazą przeznaczoną dla tej drugiej aplikacji (klienta). Do komunikacji z bazą danych używam prismy.&lt;br /&gt;
&lt;br /&gt;
Jeśli ktoś ma jakieś pomysły, własne doświadczenia to chętnie poczytam!&lt;br /&gt;
&lt;br /&gt;
Z góry bardzo dziękuję za pomoc.</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/562801/architektura-aplikacji-backendowej-node-nestjs</guid>
<pubDate>Mon, 14 Mar 2022 12:25:03 +0000</pubDate>
</item>
<item>
<title>Cheerio web scraping - jak zapisać do zmiennej tablicowej atrybuty src załadowanych zdjęć</title>
<link>https://forum.pasja-informatyki.pl/555577/cheerio-web-scraping-jak-zapisac-zmiennej-tablicowej-atrybuty-zaladowanych-zdjec</link>
<description>

&lt;p&gt;cheerio, express.js&lt;/p&gt;



&lt;p&gt;
&lt;br&gt;
Witam
&lt;br&gt;
Chcę przechować w zmiennej&amp;nbsp;&lt;em&gt;premieres &lt;/em&gt;m.in. informacje dot. atrybutu src elementów zdjęć. Problem polega na tym, że na stronie domyślnie jest coś w rodzaju lazy loadingu i początkowo atrybutem src jest link do placeholdera, który zmienia się dopiero po zaczytaniu strony:&amp;nbsp;
&lt;br&gt;
&lt;a href=&quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&lt;/a&gt;
&lt;br&gt;
W jaki sposób mogę dostać się do danych tego atrybutu dopiero, gdy zdjęcia się załadują? Mowa tu o podstronie:&amp;nbsp;&lt;a href=&quot;https://www.imdb.com/showtimes/location?ref_=inth_mny_sm&amp;amp;sort=release_date,desc&amp;amp;st_dt=2021-10-11&amp;amp;mode=showtimes_grid&amp;amp;page=1&quot; rel=&quot;nofollow&quot;&gt;https://www.imdb.com/showtimes/location?ref_=inth_mny_sm&amp;amp;sort=release_date,desc&amp;amp;st_dt=2021-10-11&amp;amp;mode=showtimes_grid&amp;amp;page=1&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;1. crawler.js&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
import * as cheerio from &quot;cheerio&quot;;
import request from &quot;request&quot;;

const fetchPremieresData = () =&amp;gt; {
  return new Promise((resolve, reject) =&amp;gt; {
    request(
      &quot;https://www.imdb.com/showtimes/location?ref_=inth_mny_sm&amp;amp;sort=release_date,desc&amp;amp;st_dt=2021-10-11&amp;amp;mode=showtimes_grid&amp;amp;page=1&quot;,
      (error, response, html) =&amp;gt; {
        let premieres = [];
        if (!error &amp;amp;&amp;amp; response.statusCode === 200) {
          const $ = cheerio.load(html);
          $(&quot;div.title&quot;).each((i, el) =&amp;gt; {
            const title = $(el).text();
            premieres.push({ id: i, title });
          });
          $(&quot;img.loadlate&quot;).each((i, el) =&amp;gt; {
            const cover = $(el).attr(&quot;src&quot;);
            premieres[i].cover = cover;
          });
          resolve(premieres);
          console.log(JSON.stringify(premieres));
        } else {
          reject(error);
          console.error(error);
        }
      }
    );
  });
};

export default fetchPremieresData;
&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;2. server.js:&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
app.get(&quot;/premieres&quot;, (req, res) =&amp;gt; {
  const premieresData = fetchPremieresData();
  try {
    const showPremieres = async () =&amp;gt; {
      const data = await premieresData;
      res.send(data);
    };
    showPremieres();
  } catch (err) {
    console.error(err);
  }
});&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;3. response:&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
// http://localhost:1410/premieres

[
  {
    &quot;id&quot;: 0,
    &quot;title&quot;: &quot;Nędzarz i madame&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 1,
    &quot;title&quot;: &quot;Pitbull&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 2,
    &quot;title&quot;: &quot;To musi być miłość&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 3,
    &quot;title&quot;: &quot;Cuidado con lo que deseas&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 4,
    &quot;title&quot;: &quot;Pan de limón con semillas de amapola&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 5,
    &quot;title&quot;: &quot;Furioza&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 6,
    &quot;title&quot;: &quot;Eternals&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 7,
    &quot;title&quot;: &quot;Poroże&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },
  {
    &quot;id&quot;: 8,
    &quot;title&quot;: &quot;Pogromcy duchów. Dziedzictwo&quot;,
    &quot;cover&quot;: &quot;https://m.media-amazon.com/images/S/sash/4FyxwxECzL-U1J8.png&quot;
  },&lt;/pre&gt;



&lt;p&gt;...&lt;/p&gt;



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



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



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/555577/cheerio-web-scraping-jak-zapisac-zmiennej-tablicowej-atrybuty-zaladowanych-zdjec</guid>
<pubDate>Tue, 23 Nov 2021 15:54:12 +0000</pubDate>
</item>
<item>
<title>Node.js Zarządzanie sesjami</title>
<link>https://forum.pasja-informatyki.pl/546738/node-js-zarzadzanie-sesjami</link>
<description>

&lt;p&gt;Witam, posiadam server na node.js / express z sesjami zapisywanymi w ciasteczkach,&amp;nbsp;jeśli trzeba będzie zmienić sposób zapisu sesji to nie ma problemu, ale wolałbym nie.&lt;/p&gt;



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



&lt;p&gt;W jaki sposób zarządzać sesjami tak aby np. zniszczyć wszystkie sesje danego użytkownika? Załóżmy że komuś się włamali na konto i po zmianie hasła chce aby wszystkie poprzednie sesje przestały istnieć, jak tego dokonać?&lt;/p&gt;



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



&lt;p&gt;Obecne rozwiązanie wygląda tak że przy tworzeniu sesji jest dodawana do tablicy z sesjami wraz z id użytkownika np:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
{
session : session,
id : 'USERNAME'
}&lt;/pre&gt;



&lt;p&gt;jeśli ktoś da np. &quot;Zniszcz wszystkie aktywne sesje&quot; to ta tablica z obiektami jest iterowana i wszystkie sesje z nazwą użytkownika np. &quot;USERNAME&quot; są niszczone metodą destroy()&lt;/p&gt;



&lt;p&gt;Dziala? Działa, ale nie wiem czy tak to powinno wyglądać&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/546738/node-js-zarzadzanie-sesjami</guid>
<pubDate>Thu, 15 Jul 2021 07:03:46 +0000</pubDate>
</item>
<item>
<title>Problem z asynchronicznością Node</title>
<link>https://forum.pasja-informatyki.pl/546493/problem-z-asynchronicznoscia-node</link>
<description>

&lt;p&gt;Uczę się Node i piszę pierwszą małą apkę. Mam problem z jedną funkcją, nie bardzo wiem co może być powodem tego że nie działa tak jak chcę, przyglądam się jej już dość długo i szczerze im dłużej to robię tym bardziej sam sobie to komplikuję. Teraz do rzeczy: pobieram z bazy danych użytkownika, który ma tablicę z id jego tasków. Potem chcę pobrać z bazy te taski po ich _id. Więc lecę po tablicy i daję zapytanie do bazy. Mimo zastosowania funkcji asynchronicznej i użycie await&amp;nbsp;działanie 'przechodzi' dalej nie czekając na zapytanie, renderuje widok bez poczekania&amp;nbsp;na odpowiedź z bazy,&amp;nbsp;ale gdy taski zostaną już dociągnięte z bazy w console logu mam poprawne dane.&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
export const getMainPage = async (
  req: express.Request,
  res: express.Response
) =&amp;gt; {
  const userTasks: any =  [];
  
  try {
    const fetchedUser = await User.findOne({ _id: req.session.loggedUserId });
  
    await fetchedUser.tasks.forEach(async (id: string) =&amp;gt; {
      const fetchedTask = await Task.findOne({ _id: id });
      userTasks.push(fetchedTask);
      // console.log(userTasks); tutaj dostaje poprawne dane
    });
    
    //console.log(userTasks); ale dopiero po tym logu i po renderze widoku
    res.render(&quot;main-page&quot;, {
      path: &quot;main-page&quot;,
      csrfToken: req.csrfToken(),
      tasks: userTasks,
    });

  } catch (e) { 
    console.log(e);
    res.redirect('/add-task');
  }
};&lt;/pre&gt;



&lt;p&gt;Dzięki z góry za poświęcony czas.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/546493/problem-z-asynchronicznoscia-node</guid>
<pubDate>Mon, 12 Jul 2021 19:28:10 +0000</pubDate>
</item>
<item>
<title>node.js&amp;express&amp;mongoDB app - bezpieczeństwo . Jakie moduły ?</title>
<link>https://forum.pasja-informatyki.pl/545330/node-js%26express%26mongodb-app-bezpieczenstwo-jakie-moduly</link>
<description>

&lt;p&gt;Jakie dodatkowe moduły, pakiety (bezpieczeństwa) polecilibyście aby przyzwoicie zabezpieczyć aplikacje(node&amp;amp;express&amp;amp;mongoDB) ???&lt;/p&gt;



&lt;p&gt;Ze wskazaniem na :&lt;/p&gt;



&lt;p&gt;- Brute-force attack&lt;/p&gt;



&lt;p&gt;- XSS attacks&lt;/p&gt;



&lt;p&gt;- Denial-of-Service (&lt;strong&gt;DoS&lt;/strong&gt;) attack&lt;/p&gt;



&lt;p&gt;- nosql injection&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/545330/node-js%26express%26mongodb-app-bezpieczenstwo-jakie-moduly</guid>
<pubDate>Thu, 01 Jul 2021 10:31:51 +0000</pubDate>
</item>
<item>
<title>SSR dla istniejącego projektu React w Express.js</title>
<link>https://forum.pasja-informatyki.pl/544631/ssr-dla-istniejacego-projektu-react-w-express-js</link>
<description>Cześć, napisałem prostą apkę w React i chciałbym teraz przekształcić ją, tak aby była generowana po stronie serwera (Express).&lt;br /&gt;
&lt;br /&gt;
Zrobiłem na początku trochę gafę i w moim repozytorium mam po prostu folder 'frontend', a w nim całą Reactową aplikację z skonfigurowanym typescriptem, babelem i webpackiem. &lt;br /&gt;
Nie bawiłem się jeszcze w SSR, dlatego jestem ciekaw, czy jeśli chciałbym zrobić taki serwer i mieć jego plik w katalogu obok folderu frontend, to musiałbym w tym &amp;quot;głównym&amp;quot; poinstalować i poustawiać wszystkie zależności jakie porobiłem w środku folderu &amp;quot;frontend&amp;quot;, a dopiero potem stworzyć plik server.js ?&lt;br /&gt;
&lt;br /&gt;
Wtedy w środku &amp;quot;frontend/src&amp;quot; miałbym 2 pliki - index.tsx (z metodą React.render()), bo chciałbym mieć możliwość uruchamiania aplikacji też bez serwera. I 2 plik to byłby indexServer.tsx z metodą React.hydrate(), który by szedł do pliku server.js (czyli byłby do generowania aplikacji przez serwer). Czy taka koncepcja ma rację bytu ?&lt;br /&gt;
&lt;br /&gt;
Link do repo: &lt;a href=&quot;https://github.com/poldeeek/spider-game&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/poldeeek/spider-game&lt;/a&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/544631/ssr-dla-istniejacego-projektu-react-w-express-js</guid>
<pubDate>Tue, 22 Jun 2021 22:38:56 +0000</pubDate>
</item>
<item>
<title>Czy ktoś z Was ma tę książkę ?</title>
<link>https://forum.pasja-informatyki.pl/543078/czy-ktos-z-was-ma-te-ksiazke</link>
<description>

&lt;p&gt;&lt;strong&gt;&quot;Tworzenie aplikacji internetowych z użyciem Node i Express. Korzystanie ze stosu JavaScript. Wydanie II&quot;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Autor:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://helion.pl/autorzy/ethan-brown&quot; rel=&quot;nofollow&quot;&gt;Ethan Brown&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;



&lt;p&gt;Opinie ?&lt;/p&gt;



&lt;p&gt;Miłego Weekendu Wszystkim &lt;img alt=&quot;laugh&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/teeth_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;laugh&quot;&gt;&lt;/p&gt;</description>
<category>Rozwój zawodowy, nauka, praca</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/543078/czy-ktos-z-was-ma-te-ksiazke</guid>
<pubDate>Sat, 05 Jun 2021 13:05:18 +0000</pubDate>
</item>
<item>
<title>cookie-session nie działa jeżeli client jest na drugim komputerze</title>
<link>https://forum.pasja-informatyki.pl/539561/cookie-session-nie-dziala-jezeli-client-jest-na-drugim-komputerze</link>
<description>

&lt;p&gt;Cześć. Postanowiłem zrobić system logowania i użyłem do tego biblioteki &quot;cookie-session&quot;, jednak, jeżeli zaloguję się z drugiego komputera, to ani csrfSecret, ani sesja nie są generowane. Tak wygląda output jeżeli odpalę clienta na&amp;nbsp;tym samym komputerze co serwer:
&lt;br&gt;
&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=5638217716180316828&quot; style=&quot;height:353px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;A tak to wygląda na drugim komputerze:&lt;/p&gt;



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



&lt;p&gt;Kod serwera prezentuje się następująco:&lt;/p&gt;



&lt;p&gt;funkcja do logowania:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
app.post('/login', (req, res) =&amp;gt; {  
    SQLConnection.connect(err =&amp;gt; {
        if(err) throw err
        SQLConnection.query(`SELECT * FROM users WHERE BINARY userIndex = '${req.body.index}' AND BINARY password = '${req.body.password}'`, (err, result, fields) =&amp;gt; {
            if(err) throw err
            req.session.user = result;
            console.log(req.session);
        })
    })
}) &lt;/pre&gt;



&lt;p&gt;Ustawienia sesji:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
app.use(session({
    name: 'session',
    secret: 'No one will know',
    saveUninitialized: true,
    resave: true,
    cookie: {
        maxAge: 1000 * 60 * 60 * 72,
        httpOnly: false,
        secure: false
    }
}))&lt;/pre&gt;



&lt;p&gt;problem jest dokładnie ten sam, niezależnie od tego, czy ustawię httpOnly i secure na true lub false&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/539561/cookie-session-nie-dziala-jezeli-client-jest-na-drugim-komputerze</guid>
<pubDate>Fri, 30 Apr 2021 11:33:27 +0000</pubDate>
</item>
<item>
<title>Node.js i protokół https</title>
<link>https://forum.pasja-informatyki.pl/539122/node-js-i-protokol-https</link>
<description>

&lt;p&gt;Witam, wiem, że by móc odpalić serwer Node.js w protokole https potrzebujemy dwóch rzeczy:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;Certyfikatu SSL&lt;/li&gt;
	

&lt;li&gt;&lt;strong&gt;Paczki &lt;a href=&quot;https://www.npmjs.com/package/https&quot; rel=&quot;nofollow&quot;&gt;https&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Wciąż się jeszcze uczę na temat dokładnego działania https, więc być może pytanie to jest dosyć prymitywne ...&lt;/p&gt;



&lt;p&gt;Jakiś czas temu w celu nauki Vue, napisałem i wrzuciłem na heroku prostą &lt;a href=&quot;https://github.com/JakubesP/server-finder-app&quot; rel=&quot;nofollow&quot;&gt;apkę &lt;/a&gt;(w readme jest oczywiście podany link do przetestowania).&lt;/p&gt;



&lt;p&gt;Korzystam tu z darmowego konta heroku, mimo to przyznany mam podstawowy certyfikat &lt;strong&gt;Digi Cert Inc&lt;/strong&gt;. To rozumiem. Aplikacja jest serwowana z użyciem express, dodatkowo serwer ten służy jeszcze jako proste API dla frontendu.&lt;/p&gt;



&lt;p&gt;Ciekawy jestem tego, dlaczego&lt;strong&gt; projekt działa na https mimo że nie użyłem wymaganej, wspomnianej wcześniej paczki&lt;/strong&gt; (https). Nie musiałem wykonywać kompletnie żadnych konfiguracji na serwerze. Nie wiem, może heroku zapewnia jakieś dodatkowe reverse proxy dla mojej aplikacji dzięki czemu nie muszę sam niczego zmieniać.&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Będę wdzięczny za wytłumaczenie mi jakim prawem to działa, albo podanie linku który mogłem przeoczyć...&lt;/p&gt;



&lt;p&gt;Z góry dziękuje i serdecznie pozdrawiam &lt;img alt=&quot;wink&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/wink_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;wink&quot;&gt;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/539122/node-js-i-protokol-https</guid>
<pubDate>Mon, 26 Apr 2021 16:04:31 +0000</pubDate>
</item>
<item>
<title>Post, Put, czy inna metoda dla żądania bez ciała?</title>
<link>https://forum.pasja-informatyki.pl/537352/post-put-czy-inna-metoda-dla-zadania-bez-ciala</link>
<description>

&lt;p&gt;Cześć, mam takie pytanie: Potrzebuję informacji tylko o tym, że przycisk na frontendzie został wciśnięty, bez przesyłania jakichkolwiek danych, bo nie jest mi to potrzebne. Mógłbym dodać jakiś stan w obiekcie (np. {state: true}&amp;nbsp;i sprawdzać go, ale nie widzę ku temu powodu, ze względu na to, że na backendzie funkcja wywoływana jest w momencie otrzymania żądania.&lt;/p&gt;



&lt;p&gt;Mógłbym wykorzystać metodę POST lub PUT i zamieścić w niej pusty obiekt, który totalnie bym zlał po stronie backendu&amp;nbsp;i działałoby to tak jak potrzebuję. Jedynie odesłałbym odpowiedź, do frontendu, że żądanie zostało przyjęte - dla zmiany statusu na 200.&lt;/p&gt;



&lt;p&gt;Jednak chciałbym się dowiedzieć, jaką metodę i standard powinienem stosować w takiej sytuacji?&lt;/p&gt;



&lt;p&gt;
&lt;br&gt;
&lt;em&gt;Dla informacji, stosuję React;&amp;nbsp;Express;&amp;nbsp;Axios.&lt;/em&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;frontend&quot;&gt;
const dropPathData = () =&amp;gt; {
        console.log('tried drop current path data:', selectedPath)
        axios.post('/dropDataAutoDriver', { })
    }

&amp;lt;Button onClick={dropPathData}&amp;gt;Drop current path data&amp;lt;/Button&amp;gt;&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;backend&quot;&gt;
//Index
const AutoDriver = require('../controllers/AutoDriver')
router.post('/dropDataAutoDriver', AutoDriver.dropPathData)

//Kontroler
function dropPathData(req, res) {
    //przycisk zostal wcisniety - wykonaj swoje funkcje, tu wyczysc dane
    res.end('Post done')
}&lt;/pre&gt;



&lt;p&gt;Z góry dziękuję za informację :)&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/537352/post-put-czy-inna-metoda-dla-zadania-bez-ciala</guid>
<pubDate>Wed, 14 Apr 2021 10:43:09 +0000</pubDate>
</item>
<item>
<title>Odpowiednik obiektu window dla node.js [React, Express]</title>
<link>https://forum.pasja-informatyki.pl/536117/odpowiednik-obiektu-window-dla-node-js-react-express</link>
<description>

&lt;p style=&quot;text-align: justify;&quot;&gt;Cześć, posiadam stronę internetową wykonaną w React postawioną za pomocą Express w aplikacji node.js. Zrobiłem sobie proste sterowanie głosowe za pomocą wbudowanego obiektu w przeglądarkę {window}. Aplikacja sama w sobie działa, jak wystawiam serwer react lokalnie (npm start), tzn. wykrywa mikrofon, przechwytuje dźwięk i zwraca za pomocą google speech recognition string, który steruje stroną. &lt;strong&gt;Jednak problem się pojawia, gdy stronę już stawiam za pomocą Express na aplikacji node.js. Funkcja przycisku i zmiany stanu (kolor przycisku) w react się wykonuje, jednak&amp;nbsp;rec.start() nie uruchamia się.&amp;nbsp;&lt;/strong&gt;Myślałem szczerze, że skoro otwieram stronę hostowaną z aplikacji node.js, to obiekt window jest wbudowany w przeglądarkę, w której otwiera się. &lt;strong&gt;Więc pytanie: czy istnieje jakiś sposób przebudowania (odniesienia się do obiektu window) bez przebudowywania całego softu nasłuchu i odpowiedzi, który już sobie przygotowałem?&lt;/strong&gt; Znalazłem również biblioteki dla node.js do przetwarzania mowy (np. react-speech-recognition), ale nie sprawdzałem jeszcze ich, bo może udałoby się bez zmieniania za bardzo kodu uruchomić standardowy {window}? Jeżeli nie ma takiej możliwości, to czy jest ktoś w stanie mi polecić sprawdzoną bibliotkę opartą o zewnętrzną chmurę (jak np. google)?&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;highlight:[6];&quot; title=&quot;Controller [react]&quot;&gt;
import React, { useState } from 'react'
import { Button } from 'reactstrap'
import { Mic } from 'react-bootstrap-icons'
import cmds from './commands'

const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition

class Controller extends React.Component {
    constructor(props) {
        super(props)
        this.rec = new SpeechRecognition()
        this.rec.lang = 'pl-PL'
        this.rec.onstart = () =&amp;gt; { console.log(&quot;Listening...&quot;) }
        this.rec.onresult = async event =&amp;gt; {
            const current = event.resultIndex
            const transcript = event.results[current][0].transcript
            await cmds.readOut(transcript)
        }
        this.rec.onend = async () =&amp;gt; {
            await this.rec.abort()
            await this.rec.stop()
            if (this.state.bttnColor === 'danger')
                await this.rec.start()
        }
        this.state = {
            bttnColor: 'primary'
        }
    }
    async startListening() {
        await this.rec.abort()
        await this.rec.stop()
        if (this.state.bttnColor === 'danger')
            await this.rec.start()
    }
    render() {
        return (
            &amp;lt;&amp;gt;
                &amp;lt;Button style={{ float: 'right' }} color={this.state.bttnColor}
                    onClick={async () =&amp;gt; {
                        await this.setState({ bttnColor: this.state.bttnColor === 'primary' ? 'danger' : 'primary' });
                        await this.startListening()
                    }}
                &amp;gt;&amp;lt;Mic color=&quot;white&quot; /&amp;gt;&amp;lt;/Button&amp;gt;
            &amp;lt;/&amp;gt;
        )
    }
}&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;commands.js&quot;&gt;
import axios from 'axios'

const commands = {
    states: [
        { state: false, ref: '/upCmd', lastType: '' },
        { state: false, ref: '/downCmd', lastType: '' },
        { state: false, ref: '/leftCmd', lastType: '' },
        { state: false, ref: '/rightCmd', lastType: '' }
    ],
    _voiceHandler: async cmd =&amp;gt; {
        console.log('cmd', cmd)
        let response
        switch (cmd.toLowerCase()) {
            case 'jedź': case 'przed siebie': case 'przód': case 'prosto': case 'do przodu': case 'jedź przed siebie':
                response = 'jadę prosto'
                await axios.post('/upCmd', { state: true }); break
            case 'skręć w lewo': case 'lewo': case 'w lewo':
                response = 'skręcam w lewo'
                await axios.post('/leftCmd', { state: true }); break
            case 'skręć w prawo': case 'prawo': case 'w prawo':
                response = 'skręcam w prawo'
                await axios.post('/rightCmd', { state: true }); break
            case 'cofaj': case 'tył': case 'do tyłu':
                response = 'cofam'
                await axios.post('/downCmd', { state: true }); break
            case 'stop': case 'zatrzymaj się': case 'stój': case 'nie ruszaj się':
                response = 'zatrzymuję się'
                await axios.post('/upCmd', { state: false })
                await axios.post('/leftCmd', { state: false })
                await axios.post('/rightCmd', { state: false })
                await axios.post('/downCmd', { state: false })
                break
        } //await before axioses blocks response speech text without answer
        if (response === undefined) response = 'nie rozumiem'
        return response
    },
    readOut: async message =&amp;gt; {
        const speech = new SpeechSynthesisUtterance()
        speech.text = await commands._voiceHandler(message)
        speech.volume = 1
        speech.rate = 1
        speech.pitch = 1
        speech.lang = 'pl-PL'
        window.speechSynthesis.speak(speech)
    }
}
export default commands&lt;/pre&gt;



&lt;p&gt;Z góry dziękuję.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/536117/odpowiednik-obiektu-window-dla-node-js-react-express</guid>
<pubDate>Tue, 06 Apr 2021 11:18:19 +0000</pubDate>
</item>
<item>
<title>Najlepszy, darmowy sposób na hostowanie aplikacji w express.js</title>
<link>https://forum.pasja-informatyki.pl/533806/najlepszy-darmowy-sposob-na-hostowanie-aplikacji-w-express-js</link>
<description>Cześć, jakiś czas temu napisałem aplikacje internetową używając Node.js'a z expressem. Chciałbym mieć możliwość podpięcia ją pod jakąś platformę aby była dostępna 24/7 nie mniej jednak nie chciałbym za to płacić ponieważ jest to mały projekt i nic wartego takiego angażowania, słyszałem o heroku, sprawdziłem i bardzo spoko tylko wersja darmowa ma limity godzin i na dwie aplikacje (a drugą już tworzę) zbytnio nie styka :/ słyszałem też o ct8 nawet mam tam stronę w PHP ale nie mam pojęcia jak podłączyć tam Node(jeśli ktoś byłby w stanie pomóc byłbym wdzięczny) są jeszcze jakieś lepsze opcje? Słyszałem też o Vercel.com ale tam tylko statyczne stronki :/ chociaż może jest coś tego typu, nie wiem szukałem sporo ale nic nie znalazłem. Jeśli ktoś mógłby pomóc z góry dzięki.</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/533806/najlepszy-darmowy-sposob-na-hostowanie-aplikacji-w-express-js</guid>
<pubDate>Sat, 20 Mar 2021 15:10:34 +0000</pubDate>
</item>
<item>
<title>Express, jako hosting strony internetowej z odświeżaniem danych bez przeładowania</title>
<link>https://forum.pasja-informatyki.pl/530717/express-jako-hosting-strony-internetowej-odswiezaniem-danych-bez-przeladowania</link>
<description>

&lt;p&gt;Cześć, pracuję nad komunikacją i serwerem i chciałem się spróbować z nową dla mnie biblioteką Express. Klucz w tym, że potrzebuję hostować stronę, która będzie odbierać dane z aplikacji i je przetwarzać. Oraz konieczna jest odpowiedź ze strony do aplikacji.
&lt;br&gt;
-&amp;nbsp;Tak więc przygotowałem sobie już stronę, jej serwer, silnik renderingu (tu hbs).
&lt;br&gt;
-&amp;nbsp;Udało mi się wysłać dane z serwera za pomocą przycisku do aplikacji (metodą post), chociaż jest to wywoływane przez operatora, a docelowo będę potrzebował aplikacją (po stronie strony www) odpowiednio uwarunkować. Zakładam, że wystarczy wtedy zrobić odpowiednie przekierunkowanie z poziomu js strony na np. '/akcja'.
&lt;br&gt;
- Dane wysyłane na serwer też niby działają, ale tu pojawia się pytanie, wykorzystałem metodę również post, jednak, żeby wyświetlić dane aktualnie wykorzystuje res.render('index', data), co stanowi problem, bo strona odświeżana jest gubiąc informacje o poprzednich danych (po prostu jest reloadowana). Czy jest jakaś metoda transmisji danych bez ponownego renderowania całej strony, tak aby tylko zmieniały się parametry zmiennych zdefiniowanych (tu np.{{test}})?
&lt;br&gt;
Oto aktualna wersja skrócona mojego kodu:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;server.js&quot;&gt;
//___________ Libraries ___________
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const path = require('path')
//___________ Configuration ___________
const PORT = process.env.PORT || 8080
const PATH = __dirname + '/views'
app.set('views', PATH);
app.set('view engine', 'hbs')
app.use(express.static(path.join(__dirname, 'public')));
//___________ My files ___________
const routes = require('./routes/index')
//___________ Parsers ___________
app.use(bodyParser.json())
app.use(bodyParser.raw());
app.use(bodyParser.urlencoded({ extended: true }));
//___________ Routes ___________
app.use('/', routes)

app.listen(PORT)&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 PagesController = require('../controllers/PagesController');
const ScannerController = require('../controllers/ScannerController');

router.get('/', PagesController.home);
router.post('/ref', ScannerController.set);
router.post('/feedback', ScannerController.get);
module.exports = router&lt;/pre&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;ScannerController.js&quot;&gt;
var data = { test: { dist: 0, angle: 0 } }
function get(req, res) {
    console.log(req.body.upvote)
    res.redirect('/')
}
function set(req, res) {
    let ggg = data
    res.emit(ggg);
    res.render('index', ggg);
}

module.exports = {
    set: set,
    get: get,
    data: data
}&lt;/pre&gt;



&lt;p&gt;Jak można zauważyć, ja przygotowuje sobie dane w obiekcie data, a potem na żądanie wysyłam je do serwera.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot; title=&quot;PagesController.js&quot;&gt;
function home (req, res) { res.render('index') }
module.exports = { home: home }&lt;/pre&gt;



&lt;p&gt;Wewnątrz ciała strony mam na chwilę obecną testowe przyciski do odbioru i transmisji danych oraz dwa div'y ze zmiennymi.&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot; title=&quot;index.hbs&quot;&gt;
&amp;lt;form action=&quot;/feedback&quot; method=&quot;POST&quot;&amp;gt;
            &amp;lt;input type=&quot;submit&quot; name=&quot;upvote&quot; value=&quot;post feedback&quot; /&amp;gt;
        &amp;lt;/form&amp;gt;
        &amp;lt;form action=&quot;/ref&quot; method=&quot;post&quot;&amp;gt;
            &amp;lt;input type=&quot;submit&quot; name=&quot;upvote&quot; value=&quot;POST&quot; /&amp;gt;
        &amp;lt;/form&amp;gt;
&amp;lt;div&amp;gt; {{test.dist}} &amp;lt;/div&amp;gt;
&amp;lt;div&amp;gt; {{test.angle}} &amp;lt;/div&amp;gt;&lt;/pre&gt;



&lt;p&gt;Czy da się w jakiś sposób wyświetlać i aktualizować zmienne na stronie bez jej przeładowywania, tak aby np. móc sobie je dodawać do tablicy, bez utraty poprzednich. Czy da się to rozwiązać inaczej, niż bazą danych (np. moongose), zapisem do pliku (np. csv), bądź socket.io? A może znacie lepsze rozwiązanie, niż te co przedstawiłem?
&lt;br&gt;

&lt;br&gt;
Z góry dziękuję.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/530717/express-jako-hosting-strony-internetowej-odswiezaniem-danych-bez-przeladowania</guid>
<pubDate>Wed, 24 Feb 2021 13:12:03 +0000</pubDate>
</item>
<item>
<title>Jak tworzyć własne Tokeny?</title>
<link>https://forum.pasja-informatyki.pl/527746/jak-tworzyc-wlasne-tokeny</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
wybaczcie, jeżeli ten oto mój pierwszy post znajduje się w złym dziale. Mam pytanie co do passport.js i jemu pokrewnych. Mianowicie, wiem już jak zalogować osobnika do witryny przy użyciu jego danych z Google, FB, Git-Huba, etc. Wydają one jednak tylko dostęp do kilku Swoich danych. I tutaj moje pytanie. W jaki sposób tworzyć własne lokalne tokeny, żeby stworzyć w serwisie &amp;quot;role&amp;quot;, dzięki którym do części serwisu będzie miał dostęp tylko administrator?</description>
<category>Sieci komputerowe, internet</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/527746/jak-tworzyc-wlasne-tokeny</guid>
<pubDate>Sun, 31 Jan 2021 11:42:37 +0000</pubDate>
</item>
<item>
<title>express-validator(node) zagnieżdżone objekty i warunek</title>
<link>https://forum.pasja-informatyki.pl/525926/express-validator-node-zagniezdzone-objekty-i-warunek</link>
<description>

&lt;p&gt;hej, mam pytanie dotyczące express-validatora(node). potrzebuję sprawdzić obiekt ale nie do końca wiem jak to ogarnąć z kilku powodów.
&lt;br&gt;
1. sporo zagnieżdżeń
&lt;br&gt;
2. potrzebny warunek w trakcie sprqawdzania, ponieważ zależnie od tego co jest w danym parametrze są dwie drogi jak objikt może wyglądać.
&lt;br&gt;
przykładowy obiekt w json:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
{
    &quot;name&quot;: &quot;Meter&quot;,
    &quot;owner&quot;: &quot;example&quot;,
    &quot;workPerMeter&quot;: {
        &quot;is&quot;: true,
        &quot;materials&quot;: [{
            &quot;name&quot;: &quot;one&quot;,
            &quot;quantity&quot;: 10,
            &quot;pricePerItem&quot;: 15
        },
        {
            &quot;name&quot;: &quot;two&quot;,
            &quot;quantity&quot;: 15,
            &quot;pricePerItem&quot;: 50
        }
        ],
        &quot;difficults&quot;: [{
            &quot;name&quot;: &quot;stairs&quot;,
            &quot;converter&quot;: 0.2
        },
        {
            &quot;name&quot;: &quot;problem with transport&quot;,
            &quot;converter&quot;: 0.1
        }
        ],
        &quot;materialsSumPrice&quot;: 750,
        &quot;numbersOfMeters&quot;: 20,
        &quot;pricePerMeter&quot;: 30,
        &quot;totalPriceNetto&quot;: 1339.76,
        &quot;totalPriceBrutto&quot;: 1647.9
    },
    &quot;workPerDay&quot;: {
        &quot;is&quot;: false
    }
}
&lt;/pre&gt;



&lt;p&gt;lub&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
{
    &quot;name&quot;: &quot;Day&quot;,
    &quot;owner&quot;: &quot;example&quot;,
    &quot;workPerMeter&quot;: {
        &quot;is&quot;: false
    },
    &quot;workPerDay&quot;: {
        &quot;is&quot;: true,
        &quot;works&quot;: [{
            &quot;name&quot;: &quot;one&quot;,
            &quot;materials&quot;: [{
                &quot;name&quot;: &quot;paper&quot;,
                &quot;quantity&quot;: 10,
                &quot;pricePerItem&quot;: 2
            }],
            &quot;activities&quot;: [{
                &quot;name&quot;: &quot;grinding&quot;,
                &quot;numberOfWorkingDays&quot;: 2
            },
            {
                &quot;name&quot;: &quot;assembly&quot;,
                &quot;numberOfWorkingDays&quot;: 1
            }
            ],
            &quot;sumOfWorkingDays&quot;: 3
        }],
        &quot;totalMaterialsSumPrice&quot;: 20,
        &quot;totalSumOfWorkingDays&quot;: 3,
        &quot;moneyOfTheDay&quot;: 400,
        &quot;totalPriceNetto&quot;: 1216.26,
        &quot;totalPriceBrutto&quot;: 1496
    }
}
&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;
jeżeli workPerMeter.is === true to ma sprawdzać ten obiekt, jeżeli nie to ma iść dalej
&lt;br&gt;
jeżeli workPerDay.is === true to samo.
&lt;br&gt;
widziałem w dokumentacji, ze można użyć funkcji &lt;a rel=&quot;nofollow&quot; href=&quot;https://express-validator.github.io/docs/schema-validation.html&quot;&gt;checkSchema()&lt;/a&gt; ale wtedy nie mam jak dać tego warunku, a jeżeli użyję check(&quot;workPerMeters&quot;).if(body(&quot;is&quot;)) to nie mogę użyć schema.
&lt;br&gt;
chyba, że czegoś nie rozumiem albo nie ogarnąłem.
&lt;br&gt;
jak to zrobić żeby było w miarę czytelne i nie trzeba było ręcznie sprawdzać całości czyli pisać specjalnie middleware?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/525926/express-validator-node-zagniezdzone-objekty-i-warunek</guid>
<pubDate>Tue, 19 Jan 2021 14:50:55 +0000</pubDate>
</item>
<item>
<title>Funkcja Javascript zwraca &quot;undefined&quot; mimo tego, że może zwrócić tylko &quot;true/false&quot;.</title>
<link>https://forum.pasja-informatyki.pl/523655/funkcja-javascript-zwraca-undefined-mimo-tego-ze-moze-zwrocic-tylko-true-false</link>
<description>

&lt;p&gt;Witajcie, mam problem z funkcją (isAdmin) której zadaniem jest zwracanie wartości true albo false, jednak zwraca ona zawsze wartość &quot;undefined&quot;. W czym może tkwić problem?&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
function isAdmin(req, res) {
    dbConnection.getConnection((err, connection) =&amp;gt; {
        connection.query(`SELECT id FROM users WHERE id = '${req.session.userId}' AND admin = 1`, (err, rows) =&amp;gt; {
            connection.release();
            if (err) throw err;
            if (rows.length == 1) return true;
            else return false;
        });
    });
}

exports.getDbTable = (req, res, next) =&amp;gt; {
    let table = req.params.table;
    console.log(isAdmin(req, res)); // undefined
    if (isAdmin(req, res) != true &amp;amp;&amp;amp; table == &quot;users&quot;) return res.status(401).json({error: 6, errorMsg: &quot;Access Denied&quot;});
    dbConnection.getConnection((err, connection) =&amp;gt; {
        connection.query(`SELECT * FROM ${table}`, function (err, rows) {
            if (err) throw err;
            else {
                console.log(rows);
            }
            connection.release();
        });
    });
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/523655/funkcja-javascript-zwraca-undefined-mimo-tego-ze-moze-zwrocic-tylko-true-false</guid>
<pubDate>Mon, 04 Jan 2021 20:58:41 +0000</pubDate>
</item>
<item>
<title>System łączenia użytkowników podobny do tindera</title>
<link>https://forum.pasja-informatyki.pl/523417/system-laczenia-uzytkownikow-podobny-do-tindera</link>
<description>

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



&lt;p&gt;Chcę zrobić system, który będzie dobierał użytkowników na podstawie podobnych zainteresowań lub umiejętności. Wpadłem na pewne rozwiązanie ale nie wydaje mi się zbyt wydajne.&lt;/p&gt;



&lt;ol&gt;
	

&lt;li&gt;Użytkownik wysyła zapytanie do serwera&lt;/li&gt;
	

&lt;li&gt;Serwer pobiera z mongodb&amp;nbsp;listę 100 użytkowników o podobnych zainteresowaniach&lt;/li&gt;
	

&lt;li&gt;Funkcja segreguje użytkowników od najbardziej dopasowanego do najmniej&lt;/li&gt;
	

&lt;li&gt;Użytkownik dostaje listę w której może polubić lub nie innego użytkownika&lt;/li&gt;
&lt;/ol&gt;



&lt;p&gt;I teraz pojawiają się pewne problemy bo kiedy użytkownik polubi innego to w bazie danych powstaje match z tym użytkownikiem ale kiedy go nie polubi to czy powinna powstać blacklista? Zacznie to mocno komplikować zapytanie do bazy danych bo najpierw trzeba pobrać listę matchy następnie blackliste&amp;nbsp;i przefiltrować bazę od użytkowników z którymi miało się wcześniej interakcję. Ma ktoś może inny pomysł albo może doradzić uproszczenie tego procesu?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/523417/system-laczenia-uzytkownikow-podobny-do-tindera</guid>
<pubDate>Sun, 03 Jan 2021 12:51:18 +0000</pubDate>
</item>
<item>
<title>Express routing, middleware and request headers</title>
<link>https://forum.pasja-informatyki.pl/520357/express-routing-middleware-and-request-headers</link>
<description>

&lt;p&gt;Hejka!
&lt;br&gt;
Próbuje napisać w expressie serwer który jak narazie ma zarejestrowane następujące funkcje&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
app.use(bodyParser.json())

app.use(setHeaders)

app.use(authRoutes)

app.use(isAuth)

app.use(usersRoutes)

app.use(errorHandler)
&lt;/pre&gt;



&lt;p&gt;&lt;strong&gt;isAuth&lt;/strong&gt;&amp;nbsp;próbuje sprawdzić w nagłówkach requesta czy jest tam token autoryzacji jednak jeżeli znajduje się po &lt;strong&gt;authRoutes&lt;/strong&gt;&amp;nbsp;to nie moge w nim się dostać do nagłówków przez co wszystkie requesty do &lt;strong&gt;usersRoutes &lt;/strong&gt;mają status 401.
&lt;br&gt;
Kod isAuth:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const jwt = require('jsonwebtoken')

const {JWT_SECRET_KEY} = require('../util/constants')

module.exports = (req, res, next) =&amp;gt; {
  console.log(req.header('Authorization')) //undefined
  const token = req.header('Authorization')?.split(' ')[1]
  let decodedToken
  try {
    decodedToken = token &amp;amp;&amp;amp; jwt.verify(token, JWT_SECRET_KEY)
  }
  catch(error) {
    error.status = 500
    throw error
  }
  if (!decodedToken) throw {status: 401, message: 'Not authenticated'}
  req.userId = decodedToken.userId
  next()
}&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;

&lt;br&gt;
Wcześniej w &lt;strong&gt;authRoutes&amp;nbsp;&lt;/strong&gt;headery są normalnie widoczne :( jeśli usunę &lt;strong&gt;isAuth&amp;nbsp;&lt;/strong&gt;middleware to dalej w &lt;strong&gt;usersRoutes&amp;nbsp;&lt;/strong&gt;też mam dostęp do nagłówków. Czy ktoś mógłby mi wytłumaczyć dlaczego tak się dzieje? I w jaki sposób do wszystkich routów poza &lt;strong&gt;authRoutes &lt;/strong&gt;dodać middleware sprawdzające uwierzytelnienie użytkownika?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/520357/express-routing-middleware-and-request-headers</guid>
<pubDate>Tue, 08 Dec 2020 13:14:28 +0000</pubDate>
</item>
<item>
<title>System logowanie ExpressJs</title>
<link>https://forum.pasja-informatyki.pl/513008/system-logowanie-expressjs</link>
<description>

&lt;p&gt;Robię prosty system logowania w ExpressJs i mam problem otóż po zatwierdzeniu formularza logowania, aplikacja mi przestaje działać. System rejestracji działa (użytkownicy są trzymane w tablicy, bo jest to tylko prowizorka)&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/creend/Express-logging-system&quot;&gt;repozytorium&lt;/a&gt;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/513008/system-logowanie-expressjs</guid>
<pubDate>Thu, 22 Oct 2020 19:59:26 +0000</pubDate>
</item>
<item>
<title>ExpressJs  wtyczka connect-flash nie działa</title>
<link>https://forum.pasja-informatyki.pl/512027/expressjs-wtyczka-connect-flash-nie-dziala</link>
<description>

&lt;p&gt;Tworzę bardzo prostą apkę i chciałbym użyć wtyczki &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.npmjs.com/package/connect-flash&quot;&gt;connect-flash&lt;/a&gt;. Niestety coś mi nie działa. Dużo głowiłem, ale nie odnalazłem rozwiązania, z góry dzięki za pomoc&lt;/p&gt;



&lt;p&gt;Link do repozytorium:&amp;nbsp;&lt;a href=&quot;https://github.com/creend/ExpressApp&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/creend/ExpressApp&lt;/a&gt;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/512027/expressjs-wtyczka-connect-flash-nie-dziala</guid>
<pubDate>Fri, 16 Oct 2020 17:21:25 +0000</pubDate>
</item>
<item>
<title>Błąd Access-Control-Allow-Origin, własne API</title>
<link>https://forum.pasja-informatyki.pl/510226/blad-access-control-allow-origin-wlasne-api</link>
<description>

&lt;p&gt;Zaczynam się uczyć Express.js&amp;nbsp;i piszę bardzo proste api, które mi nie działa, wyrzuca błąd&lt;/p&gt;



&lt;p&gt;Access to XMLHttpRequest at 'http://localhost:4000/' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.&lt;/p&gt;



&lt;p&gt;Mimo iż dodałem linijkę&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
res.set(&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;);&lt;/pre&gt;



&lt;p&gt;Nie działa.&lt;/p&gt;



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

app.get('/', function (req, res, next) {
  res.set(&quot;Access-Control-Allow-Origin&quot;, &quot;http://localhost:3000/&quot;);
  res.json({
    &quot;status&quot;: &quot;succes&quot;
  })
})

app.listen(4000, function(){
  console.log('Listening')
})&lt;/pre&gt;



&lt;p&gt;obsługa na froncie:&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
axios.get('http://localhost:4000/',{
    headers:{
      &quot;Access-Control-Allow-Origin&quot;: 'http://localhost:3000'
  }
}).then(function (response){
    console.log(response);
})&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/510226/blad-access-control-allow-origin-wlasne-api</guid>
<pubDate>Thu, 01 Oct 2020 18:04:47 +0000</pubDate>
</item>
<item>
<title>Jak powinien wyglądać sekret w sesji w express?</title>
<link>https://forum.pasja-informatyki.pl/504449/jak-powinien-wygladac-sekret-w-sesji-w-express</link>
<description>

&lt;pre class=&quot;brush:jscript;&quot;&gt;
app.use(session({secret: 'secret'}));&lt;/pre&gt;



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



&lt;p&gt;Jak powinien w express w sesjach wyglądać sekret? Jak długi być powinien dla optymalnego bezpieczeństwa? Oraz jakich znaków można uzywać w nim?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/504449/jak-powinien-wygladac-sekret-w-sesji-w-express</guid>
<pubDate>Tue, 18 Aug 2020 14:20:34 +0000</pubDate>
</item>
<item>
<title>DEPLOY Node js + mongo DB</title>
<link>https://forum.pasja-informatyki.pl/504386/deploy-node-js-mongo-db</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
Chciałbym zdeployować stronę wraz z bazą danych na zewnętrzny serwer, aby móc mieć podgląd live.&lt;br /&gt;
Do tej pory korzystałem z heroku, jednak teraz przy zakładaniu nowego konta, aby dodać darmowy addon z mongoDB wymagane jest podanie karty płatniczej.&lt;br /&gt;
&lt;br /&gt;
Czy są jakieś darmowe alternatywy &amp;nbsp;(gdzie nie muszę podawać danych z karty) gdzie mogę postawić prostą aplikację z bazą danch w Node js i mongo ?</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/504386/deploy-node-js-mongo-db</guid>
<pubDate>Tue, 18 Aug 2020 06:21:58 +0000</pubDate>
</item>
<item>
<title>Express.js informacje</title>
<link>https://forum.pasja-informatyki.pl/494892/express-js-informacje</link>
<description>Hej. Chciałem się zapytać jak to jest z Express.js mianowicie czy do końcowego produktu musi być postawiony serwer node czy tylko Build jak w react?&lt;br /&gt;
&lt;br /&gt;
Czy wygodny jest Express.js w połączeniu react + mysql?</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/494892/express-js-informacje</guid>
<pubDate>Fri, 19 Jun 2020 04:24:24 +0000</pubDate>
</item>
<item>
<title>Pakiet do pobierania danych z linku</title>
<link>https://forum.pasja-informatyki.pl/493968/pakiet-do-pobierania-danych-z-linku</link>
<description>Cześć, potrzebuję pakietu który pozwoli na scrapowanie danych z linku np: kiedy użytkownik wklei link z youtube,reddit czy facebooka to zwróci nazwę, miniaturkę itd.</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/493968/pakiet-do-pobierania-danych-z-linku</guid>
<pubDate>Fri, 12 Jun 2020 16:04:52 +0000</pubDate>
</item>
<item>
<title>app vs http server na node.js</title>
<link>https://forum.pasja-informatyki.pl/484735/app-vs-http-server-na-node-js</link>
<description>

&lt;p&gt;Witam, nie jestem za bardzo obeznany w node.js&lt;/p&gt;



&lt;p&gt;Ale metody takie jak use i listen stosuje dla zmiennej app&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const app = require('express')();
const http = require('http').createServer(app);&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&amp;nbsp;natomiast samo socket.io wymaga użycia servera http&lt;/p&gt;



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



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const io = require('socket.io')(http);&lt;/pre&gt;



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



&lt;p&gt;I teraz pytanie, całe listen, use, get i inne metody z app, moge nadal tak samo używać tylko dla node stworzyć http server i to będzie okej?&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Czy trzeba przerzucic się z app na http i zacząć używać innych metod?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/484735/app-vs-http-server-na-node-js</guid>
<pubDate>Mon, 27 Apr 2020 05:07:02 +0000</pubDate>
</item>
<item>
<title>validowanie req.params, req.body i query string</title>
<link>https://forum.pasja-informatyki.pl/482072/validowanie-req-params-req-body-i-query-string</link>
<description>Cześć,&lt;br /&gt;
Piszę api, w nodejs z express, do strony i mam zagwozdkę. Gdzie filtrujecie i walidujecie dane?&lt;br /&gt;
W middlewares, w kontrolerze czy modelu?&lt;br /&gt;
W tej chwili filtruję w middlewares przed wpuszczeniem do koltrolera, raczej ok.&lt;br /&gt;
Według mnie kontroler powinien już mieć gotowe dane, żeby móc tylko użyć modelu (pobranie z bazy), przygotowanie jsona i zwrócenie go lub błędu.&lt;br /&gt;
&lt;br /&gt;
W innych tego typu apkach inni używają Assert (w kontrolerze), Joi (w kontrolerze), express-validator (middleware).&lt;br /&gt;
A teraz jak już wszystko sprawdzę i coś się nie będzie zgadzać, mogę zwrócić jsona (z jakim statusem) czy inaczej to zrobić?&lt;br /&gt;
&lt;br /&gt;
Chyba za dużo naraz chce ogarnąć...</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/482072/validowanie-req-params-req-body-i-query-string</guid>
<pubDate>Tue, 14 Apr 2020 20:06:49 +0000</pubDate>
</item>
<item>
<title>Buidlowanie Reactowej Apki i próba pobierania do niego danych przez express</title>
<link>https://forum.pasja-informatyki.pl/481665/buidlowanie-reactowej-apki-i-proba-pobierania-do-niego-danych-przez-express</link>
<description>Hej. Mam zbuildowaną &amp;nbsp;Reactową apkę, do której pobieram dane z mongodb przez expressa i przed buildem wszystko lokalnie ładnie śmiga. Problem zaczyna się wtedy, kiedy builduję apke, wrzucam ją na hosting z Nodem, a do tego dorzucam plik z expressem, który to będzie pobierał dane z mongo i wysyłal je jeżeli React będzie o nie wołał.&lt;br /&gt;
&lt;br /&gt;
Za każdym razem dostaję errora forbidden, albo, że nie znaleziono ścieżki. Już nie mam pojęcia co robić i zacząłem wklepywać rzeczy znalezione w necie i chociażby nie wiem co ma robić proxy w packege.json, ale dodałem, co w zasadzie ani nic nie zmienia, ani naprawia. Hylp. /: &lt;br /&gt;
&lt;br /&gt;
Link to repo: &lt;a href=&quot;https://github.com/Pawson199/reacta-app.git&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Pawson199/reacta-app.git&lt;/a&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/481665/buidlowanie-reactowej-apki-i-proba-pobierania-do-niego-danych-przez-express</guid>
<pubDate>Sun, 12 Apr 2020 18:25:33 +0000</pubDate>
</item>
<item>
<title>Aktualizowanie danych w tablicy bazy  Mongo DB &amp; Node js. - nie zapisuje mi</title>
<link>https://forum.pasja-informatyki.pl/475443/aktualizowanie-danych-w-tablicy-bazy-mongo-db-%26-node-js-nie-zapisuje-mi</link>
<description>

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



&lt;p&gt;Chcę zmienić wartość w polu &quot;approve&quot; na true. Nie wiem jak poprawnie się odwołać do kolekcji danych w tym przypadku do tablicy komentarzy. Najdziwniejsze jest to ,że podejmując własne próby otrzymuje komunikat ,że o potwierdzeniu zmiany rekordu po czym nic w tej bazie się nie zmienia. Jeżeli chodzi o front-end wykorzystuje skrypt AJAX.&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Mój kod:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
 app.post(&quot;/do-edit-comment&quot;, function (req,res) {

            blog.collection(&quot;posts&quot;).updateOne({
                &quot;_id&quot;: ObjectId(req.body.id),
                &quot;comments._id&quot;: ObjectId(req.body.id)
            },{
                $set: {
                    &quot;comments&quot;: {approve: req.body.approve}

                }
            }, function (error,document) {
                res.send({

                    text: &quot;comment approved&quot;

                });
            });
        });&lt;/pre&gt;



&lt;p&gt;Wykorzystuje Express, nie używam&amp;nbsp;&amp;nbsp;&lt;a href=&quot;https://mongoosejs.com/&quot; rel=&quot;nofollow&quot; style=&quot;font-size: small; color: rgb(102, 0, 153); cursor: pointer; text-decoration-line: none; font-family: arial, sans-serif;&quot;&gt;Mongoose&lt;/a&gt;&amp;nbsp;tylko czysta składnia.&lt;/p&gt;



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



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/475443/aktualizowanie-danych-w-tablicy-bazy-mongo-db-%26-node-js-nie-zapisuje-mi</guid>
<pubDate>Thu, 12 Mar 2020 16:24:42 +0000</pubDate>
</item>
<item>
<title>Pobieranie IP urządzenia odwiedzającego stronę i lokalizacji (miasto)</title>
<link>https://forum.pasja-informatyki.pl/475394/pobieranie-ip-urzadzenia-odwiedzajacego-strone-i-lokalizacji-miasto</link>
<description>

&lt;p&gt;Hej na potrzeby budowania statystyk serwisu e-commerce próbuję zaimplemetnować funkcję zapisującą w bazie danych lokalizację i IP każdego odwiedzającego stronę (takie wbudowane własne google analitics) i w tym celu korzystam z tej strony&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://ip-api.com/&quot;&gt;https://ip-api.com/&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;



&lt;p&gt;Stronka zwraca m.in takie parametry jak query (IP), city i dns .&lt;/p&gt;



&lt;p&gt;Problem polega na tym, że nie są to dane urządzenia które wchodzi na stronę tylko dostawcy internetu :D&lt;/p&gt;



&lt;p&gt;I tak np jak wchodzę przez telefon to wyświetla city: Poznań, no a ja jestem z Bolesławca ... IP zatem też pewnie nie jest moje.&lt;/p&gt;



&lt;p&gt;No i co z tym zrobić? Znacie jakieś lepsze narzędzia do tego co chcę zrobić?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/475394/pobieranie-ip-urzadzenia-odwiedzajacego-strone-i-lokalizacji-miasto</guid>
<pubDate>Thu, 12 Mar 2020 12:33:21 +0000</pubDate>
</item>
<item>
<title>NodeJs + ExpressJs - dobre praktyki</title>
<link>https://forum.pasja-informatyki.pl/473561/nodejs-expressjs-dobre-praktyki</link>
<description>Hej,&lt;br /&gt;
&lt;br /&gt;
Mam na studiach projekt do zrobienia w REST API. Mój wybór na język/technologię padł na NodeJs + ExpressJs. Wymagane jest aby zachować jak najwięcej dobrych wzorców programowania, architektonicznych, czysty kod itp. Nie miałbym z tym problemu gdybym pisał w moim ulubionym PHPie, a dokładnie w Symfony. Node'a nigdy nie ruszałem i potrzebuję wskazówek dotyczących, gdzie znaleźć ciekawe materiały, repozytoria z NodeJs i najlepiej do tego z Express'em. Nawet chodzi mi o tworzenie projektu od podstaw, czyli rozłożenie katalogów, plików. Znalazłem osobiście tylko takie, gdzie wszystko jest w jednym pliku, albo w &amp;quot;controllerach&amp;quot; jest zawarta cała logika, nie ma żadnych Dependency Injection. A jak wyżej wspomniałem zależy mi na czystym kodzie, a nie grubych kontrollerach na 500 linijek.&lt;br /&gt;
&lt;br /&gt;
Z góry dzięki za podpowiedzi :)</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/473561/nodejs-expressjs-dobre-praktyki</guid>
<pubDate>Thu, 27 Feb 2020 15:45:45 +0000</pubDate>
</item>
<item>
<title>Node js friend request Socekt Io</title>
<link>https://forum.pasja-informatyki.pl/467663/node-js-friend-request-socekt-io</link>
<description>Hej,&lt;br /&gt;
&lt;br /&gt;
Tworzę mały serwis i aktualnie stanąłem przed problemem, który ciężko mi samemu rozwiązać.&lt;br /&gt;
Chcę stworzyć w serwisie możliwość dodawania użytkowników do znajomych oraz komponent który będzie wyświetlał powiadomienia typu(Dostałeś odpowiedz do komentarza, użytkownik wysłał ci zaproszenie do znajomych).&lt;br /&gt;
Podobno long-polling albo właśnie websocket możę rozwiązać mój problem.&lt;br /&gt;
&lt;br /&gt;
Tu mam pierwsze pytanie wybrać long-polling czy websocket a może jeszcze coś innego?&lt;br /&gt;
Jeżeli websocket to jak mam stworzyć taki system bo long-polling jak najbardziej jest dla mnie zrozumiały natomiast websocket trochę mniej.&lt;br /&gt;
&lt;br /&gt;
Dodam tylko, że korzystam z express,react,mongodb</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/467663/node-js-friend-request-socekt-io</guid>
<pubDate>Fri, 17 Jan 2020 19:02:17 +0000</pubDate>
</item>
<item>
<title>Wyrenderowanie wyscrappowanych danych Cheerio, express</title>
<link>https://forum.pasja-informatyki.pl/465541/wyrenderowanie-wyscrappowanych-danych-cheerio-express</link>
<description>

&lt;p&gt;Do requesta przekazuje link, następnie cheerio scrappuje mi z niego odpowiednie dane, które zapisuje sobie w zmiennej data - W console logu wszystko pokazuje się prawidłowo&lt;/p&gt;



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



&lt;p&gt;&amp;nbsp; Następnie chce je wyrenderować w EJS'ie jak mogę to zrobić?&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
router.get('/', (req, res) =&amp;gt; {

    res.render('index', {

        info: null

    });

});


router.post('/', (req, res) =&amp;gt; {

    var name = req.body.name;


    request(name, (err, response, body) =&amp;gt; {

        if (!err &amp;amp;&amp;amp; response.statusCode == 200) {

            const $ = cheerio.load(body);


            $('.product ul').each((i, el) =&amp;gt; {

                const name = $(el)

                    .find('.product_name')

                    .text();

                const dane = $(el)

                    .find('.product_value')

                    .text();

                var data = `${name} ${dane}`;

                console.log(data);

            });

        }

        res.render('index', {

            info: data

        });

    });

});&lt;/pre&gt;



&lt;p&gt;To mi zwraca błąd data undefined.&lt;/p&gt;



&lt;p&gt;Tak to wyświetlam:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
        &amp;lt;% if(info !== null){ %&amp;gt;
        &amp;lt;p&amp;gt;&amp;lt;%= info %&amp;gt;&amp;lt;/p&amp;gt;
        &amp;lt;% } %&amp;gt;&lt;/pre&gt;



&lt;p&gt;Z góry dzięki za pomoc&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/465541/wyrenderowanie-wyscrappowanych-danych-cheerio-express</guid>
<pubDate>Fri, 03 Jan 2020 16:46:43 +0000</pubDate>
</item>
<item>
<title>Jak odczytać wiadomość z express api?</title>
<link>https://forum.pasja-informatyki.pl/465136/jak-odczytac-wiadomosc-z-express-api</link>
<description>Cześć, &lt;br /&gt;
Przy pomocy express js oraz mongodb zrobilem prosty backend obsługujący userów. Po stronie front`u używam React`a. Dla przykładu: &lt;br /&gt;
Po stronie backendu mam taką linijkę kodu: res.status(400).send('User already registered');&lt;br /&gt;
Gdy użytkownik istnieje w bazie to wysyłam status 400 oraz wiadomość. Pytanie moje jest, jak odczytać właśnie tą wiadomość w react i wyświetlić na ekranie.</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/465136/jak-odczytac-wiadomosc-z-express-api</guid>
<pubDate>Tue, 31 Dec 2019 15:38:54 +0000</pubDate>
</item>
<item>
<title>Node.js - podstawy routingu (express)</title>
<link>https://forum.pasja-informatyki.pl/461393/node-js-podstawy-routingu-express</link>
<description>Jak wygląda przykładowy routing w mojej aplikacji&lt;br /&gt;
&lt;br /&gt;
Osoba wchodzi na podstronę &amp;quot;profile&amp;quot; &amp;gt; node wysyła plik html profile.html &amp;gt; skrypt JS po wczytaniu wysyła zapytanie do node.js (/profilegetinfo) &amp;gt; odbiera JSON (REST) i wypełnia nim stronę&lt;br /&gt;
&lt;br /&gt;
Nie podoba mi się ten sposób, tym bardziej że ciężko się tak implementuje JSON web tokeny, myślałem nad tym aby wysłać metodą GET id profilu, a node wyśle gotowy plik profile.html już z uzupelnionymi informacjami o tym ID, tylko nie za bardzo rozumiem logicznie jak to powinno wyglądać.&lt;br /&gt;
&lt;br /&gt;
Za prosty przykład będę naprawdę wdzięczny,&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam :)</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/461393/node-js-podstawy-routingu-express</guid>
<pubDate>Wed, 04 Dec 2019 16:47:41 +0000</pubDate>
</item>
<item>
<title>System dobierania programistów w zespoły</title>
<link>https://forum.pasja-informatyki.pl/448033/system-dobierania-programistow-w-zespoly</link>
<description>

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



&lt;p&gt;Robię system który dobiera programistów w zespoły na podstawie ich umiejętności.&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Mam pewien problem którego nie mogę rozwiązać już od jakiegoś czasu więc chciałem was poprosić o radę.&lt;/p&gt;



&lt;p&gt;Czy jest inne wyjście niż pętla aby otrzymać id czterech&amp;nbsp;użytkowników?&lt;/p&gt;



&lt;p&gt;Jak otrzymać losowego użytkownika funkcja findOne zwraca zawsze użytkownika o początkowym indeksie.&lt;/p&gt;



&lt;p&gt;I ostanie pytanie które nurtuje mnie najbardziej jak dodać pole dokumentu do tablicy?&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
router.route('/getprogteam').get((req, res) =&amp;gt; {

const skillTeam= ['front','back','database','designer']
let team = [];

    for (let i = 0; i&amp;lt;skillTeam.length;i++){

        if(skill != skillTeam[i])
        {
            Preference.findOne({role: skillTeam[i]})
            .then(doc =&amp;gt; {
                console.log(doc.id);
                team.push(doc.id);
            })
        }
    }
     res.json(team);
});&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/448033/system-dobierania-programistow-w-zespoly</guid>
<pubDate>Tue, 03 Sep 2019 15:29:01 +0000</pubDate>
</item>
<item>
<title>Wybranie podejścia w aplikacji socket.io / express</title>
<link>https://forum.pasja-informatyki.pl/446976/wybranie-podejscia-w-aplikacji-socket-io-express</link>
<description>

&lt;p&gt;PL:&lt;/p&gt;



&lt;p&gt;Hej, mam pytanie dotyczące autentykacji, powinienem w tym celu zawsze używać przykładowo socket.io jak używam go w innych częściach aplikacji? Czy takie podejście jest dobre, że, jedna część aplikacji np. chat jest w socket.io a reszta taka jak logowanie lub rejestracja jest już obsługiwana za pomocą expressa?&amp;nbsp;&amp;nbsp;Dzięki :)&lt;/p&gt;



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



&lt;p&gt;ENG:&lt;/p&gt;



&lt;p&gt;Hey&amp;nbsp;&lt;img alt=&quot;:wave::skin-tone-2:&quot; src=&quot;https://a.slack-edge.com/production-standard-emoji-assets/10.2/apple-medium/1f44b-1f3fb.png&quot;&gt;&amp;nbsp;I have a question regarding the authentication approach, should I always use sockets for everything or can I split it. For example, using&amp;nbsp;&lt;a href=&quot;http://socket.io/&quot; rel=&quot;noopener noreferrer nofollow&quot; target=&quot;_blank&quot;&gt;socket.io&lt;/a&gt;&amp;nbsp;for chat only and express for everything else, is this a valid thinking? Or should I keep my self straight with one technology? Thanks&amp;nbsp;&lt;img alt=&quot;:ok_hand::skin-tone-2:&quot; src=&quot;https://a.slack-edge.com/production-standard-emoji-assets/10.2/apple-medium/1f44c-1f3fb.png&quot;&gt;&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/446976/wybranie-podejscia-w-aplikacji-socket-io-express</guid>
<pubDate>Tue, 27 Aug 2019 17:24:05 +0000</pubDate>
</item>
<item>
<title>Miejsca, gdzie można obejrzeć kod źródłowy z backendu?</title>
<link>https://forum.pasja-informatyki.pl/432798/miejsca-gdzie-mozna-obejrzec-kod-zrodlowy-z-backendu</link>
<description>Jest wiele miejsc jak codesandbox lub codepen jeśli chodzi o frontend i z takich źródeł można się dużo nauczyć. Moje pytanie brzmi jakie są najlepsze miejsca, gdzie można wstawić i obejrzeć kod źródłowy z naciskiem na node.js i Express, oprócz GitHuba oczywiście...?</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/432798/miejsca-gdzie-mozna-obejrzec-kod-zrodlowy-z-backendu</guid>
<pubDate>Fri, 31 May 2019 07:21:51 +0000</pubDate>
</item>
<item>
<title>Undandled Reject</title>
<link>https://forum.pasja-informatyki.pl/419542/undandled-reject</link>
<description>

&lt;p&gt;Czy jest jakiś sposób by obsłużyć reject, robienie dwóch promisów to dla mnie nie rozwiązanie:&lt;/p&gt;



&lt;p&gt;Z czym mam problem&lt;/p&gt;



&lt;p&gt;Mamy sobie o takiego slugParsera:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const ApiConfig = require('../config/api');

const slugParser = {
  parseSlug: function(category, filter = '') {
    return filter === '' ? ApiConfig.route[category] : `${ApiConfig.route[category]}${filter}`
  }
}

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



&lt;p&gt;szuka routingu odpowiadającego danej kategorii oraz jeśli filter nie jest pusty dokleja pole po którym będzie przeszukiwanie się odbywało w API, oczywiście kategorii może nie być, ale z poziomu parsera nie powinno go obchodzić. Potem to idzie do serwisu, który wysyła zapytanie do API.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
static sendToApi(data, route, typesConnect) {
    var corectResponse = true;
    return new Promise( (resolve, reject) =&amp;gt; {
      connect[typesConnect](`http://localhost:${apiConfig.port}${route}`, {form:data},
        (err,httpResponse,body) =&amp;gt; {
          if (err) {
            reject(err);
          }
        try {
          JSON.parse(body);
        } catch(e) {
          corectResponse = false;
        }
        resolve(corectResponse ? JSON.parse(body) : false);
      })
    })
  }&lt;/pre&gt;



&lt;p&gt;I tutaj mam problem, owszem ta metoda działa,&amp;nbsp; ale no to jest słabe ogólnie mówiąc. Tylko, że jak stawiam tutaj reject i próbuje catch to dostaje wyżej wymieniony błąd. Wiem, że ogólnie jest to duży problem node, ale czy jest w miarę spoko rozwiązanie na to? Patrzałem trochę po necie, to wszystkie wyglądały jak jakieś hat-tricki. Będę jeszcze próbował łapać wyjątki globalnie, ponoć express powinien sobie z tym poradzić.&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/419542/undandled-reject</guid>
<pubDate>Tue, 12 Mar 2019 21:59:31 +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>
<item>
<title>Budowa prostego CMS za pomocą Express.js</title>
<link>https://forum.pasja-informatyki.pl/397836/budowa-prostego-cms-za-pomoca-express-js</link>
<description>

&lt;p&gt;Cześć&amp;nbsp;&lt;img alt=&quot;laugh&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/teeth_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;laugh&quot;&gt;&lt;/p&gt;



&lt;p&gt;Od razu do rzeczy. Uczę się Node.js i w ramach tej nauki chciałbym zrobić swój własny CMS, bardzo prosty bez bajerów. Chciałbym stworzyć możliwość dodawania stron, uzupełniania jej treści w edytorze np. Quill. Używam mongoDB. Zapis treści, tytułu, jakichś innych tagów itp nie jest problemem. Pytanie: jak odpytywać o daną stronę, tzn. w expressie ustawiamy routingi, ale jak zrobić to bardziej dynamicznie? ustawić router.get('jakiś regex') czy może jakoś inaczej (parametr? nie mam pojęcia&amp;nbsp;&lt;img alt=&quot;indecision&quot; src=&quot;https://forum.pasja-informatyki.pl/qa-plugin/ckeditor4/plugins/smiley/images/whatchutalkingabout_smile.png&quot; style=&quot;height:23px; width:23px&quot; title=&quot;indecision&quot;&gt;) i przeszukać bazę w poszukiwaniu strony z takim slugiem? Nie mogę doszukać się w necie jakiegoś tutoriala o tym. Wiem że są do tego lepsze narzędzia jak keystone itp ale nie o to tu chodzi :)&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/397836/budowa-prostego-cms-za-pomoca-express-js</guid>
<pubDate>Mon, 03 Dec 2018 12:33:15 +0000</pubDate>
</item>
<item>
<title>Node.js połączenie z bazą danych mysql</title>
<link>https://forum.pasja-informatyki.pl/394365/node-js-polaczenie-z-baza-danych-mysql</link>
<description>Cześć.&lt;br /&gt;
&lt;br /&gt;
Mam kilka pytań odnoścnie node.js. Zacząłem pisać aplikacje z wykorzystaniem express i react.&lt;br /&gt;
&lt;br /&gt;
Może mi ktoś wytłumaczyc jak mam połączyć bazę danych mysql z express.js oraz jak wyciągać i wpisywać dane do bazy?&lt;br /&gt;
&lt;br /&gt;
Znalazłem też ciekawą informację odnoścnie stosowania consol.log, podobno jest to zła praktyka programistyczna, wyjaśni mi ktoś czemu i czym zastąpić consol.log?</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/394365/node-js-polaczenie-z-baza-danych-mysql</guid>
<pubDate>Sat, 17 Nov 2018 23:19:44 +0000</pubDate>
</item>
<item>
<title>Dostarczanie midleware parametru express</title>
<link>https://forum.pasja-informatyki.pl/385347/dostarczanie-midleware-parametru-express</link>
<description>

&lt;p&gt;Mamy tu jakiś speców expressa :)?&lt;/p&gt;



&lt;p&gt;Mam loadera którego zadaniem jest wrzucenie odpowiedniej konfiguracji do midleware.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const EnviromentLoader = require('./loaders/EnviromentLoader');

EnviromentLoader.setEnviroment(app);&lt;/pre&gt;



&lt;p&gt;Który na podstawie tego ładuje odpowiednią mapę.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const devConfig = require('../config/dev.js');
const prodConfig = require('../config/prod.js');

const EnviromentLoader = {
  enviroments: {
    'dev': devConfig,
    'prod': prodConfig
  },

  loadConfig: function(env) {
    return this.enviroments[env];
  },

  setEnviroment: function(app) {
    app.set('config', this.loadConfig(process.argv[2]));
  }
}&lt;/pre&gt;



&lt;p&gt;Mam routeControler która zwraca funkcje (obiekt) zadaniem Kontrolera jest sprawdzenie czy user ma dostęp do wskazanych zasobów.&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
module.exports = function(req, res, next) {
  // If the request wasn't a POST request, pass along to the next handler immediately.
  if (req.method !== 'POST') return next();

  // Perform your validations.
  Check(req.body, function(err) {
    // Validation failed, or an error occurred during the external request.
    if (err) return res.sendStatus(400);
    // Validation passed.
    return next();
  });
};&lt;/pre&gt;



&lt;p&gt;Zamysł miałem taki, że routerControler będzie sprawdzał config jeśli się znajduje w tablicy to... jeśli nie to strona główna jeśli w ogóle to jest błąd to 404. Owszem mogę po przez require dokleić mu config, ale może istnieje jakiś na to sposób?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/385347/dostarczanie-midleware-parametru-express</guid>
<pubDate>Tue, 09 Oct 2018 19:15:14 +0000</pubDate>
</item>
<item>
<title>Sesja nie chce użyć konfiguracji ciastek.</title>
<link>https://forum.pasja-informatyki.pl/383891/sesja-nie-chce-uzyc-konfiguracji-ciastek</link>
<description>

&lt;p&gt;Mam oto taki sobie plik konfiguracyjny:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
module.exports = {
  cookiesSetings: {
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true,
    cookies: {
      secure: false,
      maxAge: 1080000,
      expired: new Date(Date.now() + 1080000),
    }
  },
  serviceSetings: {
    logoutAllUser: false
  }
}&lt;/pre&gt;



&lt;p&gt;Jest ładowany po przez:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
const devConfig = require('../config/dev.js');
const prodConfig = require('../config/prod.js');

const EnviromentLoader = {
  enviroments: {
    'dev': devConfig,
    'prod': prodConfig
  },

  loadConfig: function(env) {
    return this.enviroments[env];
  },

  setEnviroment: function(app) {
    app.set('config', this.loadConfig(process.argv[2]));
  }
}

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



&lt;p&gt;do middleware, następnie na podstawie tego jest tworzona konfiguracja.&lt;/p&gt;



&lt;p&gt;app.use(session(app.get('config').cookiesSetings));&lt;/p&gt;



&lt;p&gt;Konfiguracja jest widoczna.&lt;/p&gt;



&lt;p&gt;Ale dalej tworzy defaultową konfiguracje:&lt;/p&gt;



&lt;pre class=&quot;brush:jscript;&quot;&gt;
Session {
  cookie:
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: true },
  isLogged: true }&lt;/pre&gt;



&lt;p&gt;Gdzie popełniam błąd?&lt;/p&gt;</description>
<category>JavaScript</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/383891/sesja-nie-chce-uzyc-konfiguracji-ciastek</guid>
<pubDate>Tue, 02 Oct 2018 19:24:42 +0000</pubDate>
</item>
</channel>
</rss>