Wpis z mikrobloga

W zwykłym serwerze opartym o php jest coś takiego:

// kod php
?

I kod z tego wykonuje się po stronie serwera.

Jak to jest w node? Jak wykonać kod js po stronie serwera? Sam serwer jest w js, jego konfiguracja. Ale jak zrobić, żeby jakiś plik js był dostępny tylko po stornie serwera(kod tego pliku) tak jak to jest z kodem php? I jak go w ogóle inicjować za pomocą zapytania http?

Nie potrafię tego nawet zwięźle nazwać, dlatego nie potrafię i odnaleźć.

#serwer #javascript #nodejs
  • 22
@makron: No tak, ale... Nawet nie potrafię zrozumiale napisać o co mi chodzi.

Że zadajesz pytanie do serwera i tak jak kod php ma dostęp do np. bazy danych, albo w jakiś sposób zastrzeżonych plików, tak jak zainicjować kod js takim zapytaniem http, żeby się wykonał po stronie serwera?
np. mam localhost/dupa/prrr.php
i tam kod:

// opuszczaj spodnie i puszczaj bąka
echo "straszny smród";
?

to jak to uzyskać ten sam efekt z nodejs? Że odpowiedzią jest to co jest akurat w danym pliku do którego się odnoszę?

Bo to co podał @ufik78 to chyba trzeba wpisać w sam plik serwera.js?
@look997: Nie ma czegoś takiego jak zwykły serwer. Postaram się wytłumaczyć używając dużych skrótów. Serwer jako maszyna uruchamia pewne programy. Program Apache w swoim kodzie tworzy gniazdo tcp na porcie 80 i zaczyna nasłuchiwać. Jeżeli pojawia się połączenie z przeglądarki to zaczyna je obsługiwać. Również wykonuje kod php i zwraca do przeglądarki. node.js nie jest serwerem, a interpreterem języka JavaScript za pomocą którego można pisać programy. Mogą to być programy takie
@look997: hm właśnie przez takie wstawianie phpa w js gubisz się w node.js. Dwie opcje:
1. Poczytaj o Smarty w PHP, bo to to samo co Jade w Node.js;
2. Poczytaj jak działa serwer php.
Piszę na tablecie a tu mi się nie wygodnie pisze, dlatego nie będę tłumaczył szczegółowo tylko wskazuję drogę.
@ufik78: To mi nic nie daje, ja nie chcę szablonów. Chcę to co napisałem, kod js wykonany po stronie serwera i zwrócony w odpowiedzi, ale to ma być kod który jest w pliku wskazanym w zapytaniu a nie w pliku uruchamianym z "node server.js". Tak żeby nie sam kod pliki js był zwracany, tylko ta treść którą zwróci kod.

@stacktrace: Wbrew pozorom, ja to całkiem rozumiem, byłbym w stanie napisać
@look997: nie rozumiesz różnicy. To co robi node.js to to samo co robi apache i php. Apache odpowiada za odebranie żadania i przetworzenie phpem wskazanego pliku phpi odpowiedź. W node.js jest wszystko razem, czyli obierasz żądanie i tobisz z nim co chcesz. Możesz odczytać cały url zapytania, następnie wczytać plik którego nazwa będzie w url, potem sparsować go(to robi apache), czyli miejsca gdzie będziesz miał np. <? zastąpić danymi z bazy
@ufik78: No jeśli nie ma gotowca faktycznie to faktycznie sam muszę sobie to napisać. W express jest większość rzeczy, tylko z tego co piszesz nie ma czegoś podobnego do ? czy tam z bazą danych.

Tylko dziwne mi się wydaje, że np. wysyłasz zapytanie z loginem i hasłem i obsługa tego musi być napisana w jednym pliku, razem z obsługą podstawowych serwerowych rzeczy? Jakby pomieszanie w tym nodejs jest.

Podasz przykład
@look997: do logowania też są gotowce - np. Passport. Wszystko zależy jak zirganizujesz sobie projekt. Rozdzielisz sobie modele, router itd. Pocztaj o np. mean stack.
Btw "serwerowe rzeczy" są w głównym pliku serwera, czyli port, adres obsługa requestów i responsów w routerze a reszta to jo już normlne np. Mvc - może troszkę to jest nie zrozumiałe co napisałem, ale to taki skrót myślowy a już późno jest... Mam nadzieję, że
@look997: Jeżeli problemem dla Ciebie jest wykonywanie kodu z innych plików to musisz sobie poczytać o modułach w javascript/node.js. Odpowiedź na żądanie trzeba wysyłać do obiektu response. Jeżeli chcesz zbudować taką odpowiedź w formacie html to wtedy możesz właśnie skorzystać z szablonów. Działa to dokładnie tak samo jak frameworki w php. Potem poszukaj sobie tutorialu do expressjs. No i najważniejsze: przestań myśleć o node.js jako o php. Starasz się zrobić w
@stacktrace: Mocno nad interpretujesz to co robię. Znam moduły js/node. One są przecież ładowane do głównego pliku serwera i w nim wywoływane.
Ja oczekiwałem czegoś takiego jak właśnie cgi. To też jest ładowane do głównego pliku, ale w inny sposób i o to mi chodzi, jest to w pewnym sense niezależny kod.