Szybki serwer plików Node.js (pliki statyczne przez HTTP)
Czy istnieje gotowe do użycia narzędzie Node.js (instalowane z
npm), które pomogłoby mi w ujawnieniu zawartości folderu jako serwera plików przez HTTP.
Na przykład, jeśli mam
D:\Folder\file.zip
D:\Folder\file2.html
D:\Folder\folder\file-in-folder.jpg
Następnie zaczynając od
D: \ Folder \
node node-file-server.jsmogłem uzyskać dostęp do pliku poprzez
[url=http://hostname/file.zip]http://hostname/file.zip[/url]
[url=http://hostname/file2.html]http://hostname/file2.html[/url]
[url=http://hostname/folder/file-in-folder.jpg]http://hostname/folder/file-in-folder.jpg[/url]
Dlaczego mój serwer plików statycznych węzła odrzuca żądania?
https://coderoad.ru/11024052/
jakiś mistyczny związek
standardowy statyczny serwer plików node.js
Jeśli nie ma takiego narzędzia, jakiego frameworka powinienem użyć?
Połączony:
Podstawowe serwery plików statycznych w NodeJS
https://coderoad.ru/7268033/
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
25 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Aby go użyć:
Lub tak:
Sprawdź to:
https://github.com/nodeapps/http-server
https://github.com/nodeapps/http-server
Anonimowy użytkownik
Potwierdzenie od:
https://developer.mozilla.org/ ... ework
https://developer.mozilla.org/ ... ework
:
Aktualizacja
Jeśli chcesz uzyskać dostęp do serwera z zewnętrznego żądania/pliku, musisz pokonać CORS w pliku node.js, pisząc poniżej, jak wspomniałem w poprzedniej odpowiedzi
tutaj
https://coderoad.ru/25761481/
UPDATE
Jak wspomniał Adrian, w komentarzach napisał kod ES6 z pełnym wyjaśnieniem
tutaj
http://adrianmejia.com/blog/20 ... -ES6/
Po prostu ponownie zamieszczam jego kod poniżej, na wypadek gdyby kod zniknął z oryginalnej strony z jakiegokolwiek powodu:
Anonimowy użytkownik
Potwierdzenie od:
możesz użyć
expressjs/serve-static
https://github.com/expressjs/s ... erver
który zastępuje (który nie jest już dostępny od connect 3):
a następnie z linii poleceń:
Anonimowy użytkownik
Potwierdzenie od:
python -m SimpleHTTPServer [port]
Działa dobrze i jest dostarczany z Pythonem.
Anonimowy użytkownik
Potwierdzenie od:
https://npmjs.org/package/connect
może być tym, czego szukasz.
Łatwy w instalacji dzięki:
Wtedy najprostszy statyczny serwer plików można zapisać jako:
Anonimowy użytkownik
Potwierdzenie od:
https://expressjs.com/en/starter/installing.html
https://expressjs.com/en/starter/installing.html
Utwórz plik o nazwie server.js na tym samym poziomie pliku index.html z następującą zawartością:
Jeśli chcesz go umieścić w innym miejscu, ustaw ścieżkę w trzeciej linii:
CD do folderu zawierającego plik i uruchom węzeł z konsoli za pomocą tego polecenia:
Przejrzyj localhost: 8080
Anonimowy użytkownik
Potwierdzenie od:
One-line ™ zamiast obietnic
>
https://i.stack.imgur.com/CrTt4.png
Pierwszy to ,
-
połączyć
https://www.npmjs.com/package/http-server
>
Drugi to firmy ZEIT.co-
link
https://www.npmjs.com/package/serve
>
Poniżej znajdują się dostępne opcje, jeśli to pomoże Ci podjąć decyzję.
C:\Users\Qwerty>http-server --help
usage: http-server [path] [options]options:
-p Port to use [8080]
-a Address to use [0.0.0.0]
-d Show directory listings [true]
-i Display autoIndex [true]
-g --gzip Serve gzip files when possible [false]
-e --ext Default file extension if none supplied [none]
-s --silent Suppress log messages from output
--cors[=headers] Enable CORS via the "Access-Control-Allow-Origin" header
Optionally provide CORS headers list separated by commas
-o [path] Open browser window after starting the server
-c Cache time (max-age) in seconds [3600], e.g. -c10 for 10 seconds.
To disable caching, use -c-1.
-U --utc Use UTC time format in log messages. -P --proxy Fallback proxy if the request cannot be resolved. e.g.: http://someurl.com -S --ssl Enable https.
-C --cert Path to ssl cert file (default: cert.pem).
-K --key Path to ssl key file (default: key.pem). -r --robots Respond to/robots.txt [User-agent: *\nDisallow:/]
-h --help Print this list and exit.
C:\Users\Qwerty>serve --help Usage: serve.js [options] [command] Commands: help Display help Options: -a, --auth Serve behind basic auth
-c, --cache Time in milliseconds for caching files in the browser
-n, --clipless Don't copy address to clipboard (disabled by default)
-C, --cors Setup * CORS headers to allow requests from any origin (disabled by default)
-h, --help Output usage information
-i, --ignore Files and directories to ignore
-o, --open Open local address in browser (disabled by default)
-p, --port Port to listen on (defaults to 5000)
-S, --silent Don't log anything to the console
-s, --single Serve single page applications (sets `-c` to 1 day)
-t, --treeless Don't display statics tree (disabled by default)
-u, --unzipped Disable GZIP compression
-v, --version Output the version numberJeśli chcesz śledzić zmiany, zobacz https://www.npmjs.com/package/hostr, kredyt
Odpowiedź Henry'ego Zenga
https://coderoad.ru/16333790/
Anonimowy użytkownik
Potwierdzenie od:
TYLKO SERWER DEMO/PROTO
>
Jeśli to wszystko, czego chcesz, spróbuj tego:
Uwaga: musisz użyć „/index.html” jako części adresu np. ”
http://localhost:3000/index.html
http://localhost:3000/index.html "
Anonimowy użytkownik
Potwierdzenie od:
Można go pobrać za pomocą Node Package Manager:
Po zainstalowaniu przejdź do folderu projektu w wierszu polecenia cmd i wykonaj następujące kroki:
Rozpocznie się udostępnianie wszystkich plików w bieżącym folderze przeglądarki.
Dowiedz się więcej od
BrowserSync
https://www.browsersync.io/
Dzięki.
Anonimowy użytkownik
Potwierdzenie od:
http://pad.js.org
mój jednoplikowy/lekki projekt dla serwera internetowego node.js w postaci pliku statycznego bez zależności, który uważam za szybkie i bogate narzędzie, które jest tak łatwe w użyciu, jak wydanie tego polecenia na terminalu Linux/Unix/macOS (lub
termux
https://termux.com
na Androidzie) po zainstalowaniu node.js (lub na Debianie/Ubuntu):
(w dokumentacji są różne polecenia dla użytkowników systemu Windows)
Obsługuje różne rzeczy, które moim zdaniem mogą okazać się przydatne,
[/*]
[*]
Dostarczaj poprawne MIME dla dobrze znanych typów plików (z możliwością wyłączenia)
[/*]
[*]
Możliwość instalacji jako pakiet npm i narzędzie lokalne lub instalacja jednoliniowa jako stała usługa z Dockerem
[/*]
[*]
Obsługa plików HTTP 206 (przesyłanie wielu części pliku) dla szybszego transferu
[/*]
[*]
Ładuje z terminala i konsoli przeglądarki (w rzeczywistości pierwotnie planowano, że będzie to proxy systemu plików dla konsoli JS przeglądarek na innych stronach/domenach)
[/*]
[*]
Załadunek/rozładunek CORS (który można również wyłączyć)
[/*]
[*]
Łatwa integracja z HTTPS
[/*]
[*]
Lekkie opcje wiersza poleceń zapewniające lepszą bezpieczną usługę:
[sudo] npm install -g pad.js
, a następnie użyj jego zainstalowanej wersji, aby uzyskać dostęp do jego opcji:[sudo] docker run --restart = always -v/files:/files --name pad.js -d -p 9090: 9090 quay. io/ebraminio/pad.js
[/*]
[/list]
Opisane powyżej funkcje są w większości udokumentowane na stronie głównej narzędzia
http://pad.js.org
http://pad.js.org
co, dzięki jakiejś dobrej sztuczce, której użyłem, jest również źródłem samego instrumentu!
Źródło instrumentu znajduje się pod adresem
GitHub
https://github.com/ebraminio/pad.js
który z zadowoleniem przyjmuje Twoje opinie, życzenia i życzenia!
Anonimowy użytkownik
Potwierdzenie od:
Dodaj plik o następującej zawartości:
Upewnij się również, że potrzebujesz . Uruchom lub w zależności od konfiguracji (mogę polecić , jest to dość szybkie). ..
Możesz zmienić na dowolny folder, w którym udostępniasz swoje treści. W moim prostym projekcie nie wyświetlałem w żadnym folderze, więc po prostu usunąłem nazwę pliku .
Następnie możesz uruchomić . Ponieważ musiałem przesłać swój projekt na serwer Heroku, musiałem dodać następujące elementy do mojego pliku :
Anonimowy użytkownik
Potwierdzenie od:
lub
Anonimowy użytkownik
Potwierdzenie od:
Express framework
http://expressjs.com/, ta funkcjonalność będzie gotowa do użycia.
Aby skonfigurować prostą aplikację do obsługi plików, wykonaj następujące czynności:
Anonimowy użytkownik
Potwierdzenie od:
<pre class="lang-js prettyprint-override">
Jest to prosty serwer node.js, który obsługuje tylko żądane pliki w określonym katalogu.
Za pomocą:
<pre class="lang-sh prettyprint-override">
może być bezwzględny lub względny, w zależności od lokalizacji . Wartość domyślna to , czyli katalog, w którym wykonywane jest polecenie .
is 8080 by default but you can specify any port available in your OS.
In your case, I would do:
<pre class="lang-sh prettyprint-override">
You can browse the files under from a browser by typing
Anonimowy użytkownik
Potwierdzenie od:
https://www.npmjs.com/package/hostr
https://www.npmjs.com/package/hostr
zainstalować
Zmiana dyrektora roboczego
I zacznijmy
Anonimowy użytkownik
Potwierdzenie od:
Buffet
https://www.npmjs.com/package/buffet... Działa podobnie do Web Application Accelerator, znanego również jako odwrotny serwer proxy buforowania HTTP, ale po prostu ładuje wybrany katalog do pamięci.
Buffet przyjmuje podejście w pełni buforowane - wszystkie pliki są w pełni ładowane do pamięci podczas ładowania aplikacji, więc nigdy nie poczujesz, że system plików się pali. W praktyce jest to niezwykle skuteczne. Do tego stopnia, że nałożenie lakieru przed aplikacją może nawet ją spowolnić!
Używamy go w witrynie codePile i stwierdziliśmy wzrost o ~ 700 żądań/s do> 4K żądań na sekundę na stronie, która ładuje 25 zasobów podczas ładowania połączenia 1k użytkownika w tym samym czasie.
Przykład:
Anonimowy użytkownik
Potwierdzenie od:
połączyć
https://expressjs.com/en/starter/static-files.html
.
Wystarczy zainstalować moduł ekspresowy .
Możesz uzyskać dostęp do swojego pliku, np
http://hostname/Folder/file.zip
http://hostname/Folder/file.zip
Anonimowy użytkownik
Potwierdzenie od:
serve
https://www.npmjs.com/package/serve
jeśli nie potrzebujesz rzeczy NodeJS, jest to szybkie i łatwe w użyciu narzędzie:
1-zainstaluj pakiet na swoim komputerze:
2-serwuj folder statyczny z :
Pokaże ci, jaki port obsługuje twój folder statyczny, po prostu przejdź do hosta, na przykład:
Anonimowy użytkownik
Potwierdzenie od:
Utwórz plik z następującą zawartością:
Utwórz plik z następującą zawartością:
Uruchomiony wiersz poleceń:
Poniżej w :
Idź poniżej adresu URL, w chrome:
To wszystko. Mam nadzieję że to pomoże.
Źródło:
https://nodejs.org/en/knowledg ... files
https://nodejs.org/en/knowledg ... iles/
/
Anonimowy użytkownik
Potwierdzenie od:
służ mi
https://www.npmjs.org/package/serve-me
Korzystanie z niego jest tak proste:
To wszystko.
PD: Domyślny folder to „publiczny”.
Anonimowy użytkownik
Potwierdzenie od:
https://github.com/jdr0dn3y/nodejs-StatServe
https://github.com/jdr0dn3y/nodejs-StatServe
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
prawidłowo
https://stackoverflow.com/a/7313005/852806
obsłużyć błędy, ale powinno to zapobiec zatrzymaniu witryny w przypadku wystąpienia błędu. Kod poniżej:
Anonimowy użytkownik
Potwierdzenie od:
Zobacz też
używanie node.js jako prostego serwera WWW
https://coderoad.ru/6084360/
Anonimowy użytkownik
Potwierdzenie od:
https://npmjs.org/search?q=server
https://npmjs.org/search?q=server, Znalazłem serwer statyczny
https://github.com/maelstrom/static-server
https://github.com/maelstrom/static-serverZawsze trzeba było wysłać plik do współpracownika, ale nie przeszkadza mu e-mail
bestia 100 MB? Chciałem uruchomić prosty przykład JavaScript
aplikacji, ale wystąpiły problemy z jej uruchomieniem przez plik:///
protokół? Chciałbym udostępnić mój katalog multimediów w sieci LAN bez
konfigurowanie Samby, FTP lub czegokolwiek innego, co wymaga edycji
pliki konfiguracyjne? Wtedy ten serwer plików sprawi, że twoje życie będzie takie
trochę łatwiej.
Aby zainstalować proste statyczne rzeczy na serwerze, użyj npm:
Następnie, aby udostępnić plik lub katalog, po prostu uruchom
Może to być nawet lista zawartości folderu.
Niestety,
nie może wyświetlać plików
https://github.com/maelstrom/s ... ues/1
:)