/ / Ako pridať `jquery` na vyjadrenie aplikácie - node.js, express, socket.io, npm

Ako pridať `jquery 'na vyjadrenie app - node.js, express, socket.io, npm

Práve som si hrával s hello-world-chatom express aplikácia (tu). A všimol som si nasledujúce v index.html

<script src="/socket.io/socket.io.js"></script>

Mal som nainštalovaný

npm install --save socket.io

Ako sa dá vedieť, kde to je, pretože neexistuje žiadny súbor

/node_modules/socket.io/socket.io.js

Napríklad by som rád urobil to isté s jQuery

$> npm install --save jquery

<script src="/jquery/jquery.js"></script>

Toto však nefunguje :(

Môže mi niekto vysvetliť, ako to funguje? A ak je to možné, ako to vyriešim jquery.

odpovede:

2 pre odpoveď č. 1

Keď nainštalujete knižnicu socket.io na strane servera a potom inicializujete server socket.io na strane servera, odovzdáte ho vášmu objektu expresnej aplikácie. Potom nainštaluje popisovač trasy pre/socket.io/socket.io.js trasa a keď sa táto trasa požaduje,obslužný program obsluhuje príslušný klientsky súbor z jeho vlastného modulu socket.io. Klientsky súbor nie je na tejto presnej ceste a nemusí mať nevyhnutne ani tento názov súboru, ale keď je táto trasa zasiahnutá, je nainštalovaný serverový soket.io route bude obsluhovať príslušný súbor pre podporu socket.io na strane klienta.

To je pekná výhodapretože kedykoľvek aktualizujete svoju knižnicu socket.io na strane servera, automaticky získate novú knižnicu na strane klienta (vloženú do knižnice na strane servera), ktorá vždy tieto dve synchronizuje. Ak ste obsluhovali samostatnú knižnicu na strane klienta (z CDN alebo z vašej vlastnej trasy), musíte sa uistiť, že ste inovovali knižnice klientov a serverov súčasne.


Ak chcete obsluhovať jQuery zo svojho servera, môžete ho použiť express.static() umiestnite súbor jQuery do známeho umiestnenia na vašom serveri a použite express.static() konfigurácia na nasmerovanie konkrétnej trasy na správne miesto. Pozrite si časť Poskytovanie statických súborov v systéme Express pre dokumentáciu.

Alebo ak to naozaj chcete robiť ako socket.io, môžete si nainštalovať vlastnú trasu /jquery/jquery.js a potom obslúžite súbor jQuery (zkdekoľvek ho umiestnite na svoj server) vždy, keď dôjde k trase. Napríklad tu je vlastná cesta, ktorá slúži na doručenie konkrétnej verzie jQuery, odkiaľ sa inštaluje pomocou príkazu, ktorý ste spomenuli npm install --save jquery:

app.get("/jquery/jquery.js", function(req, res) {
res.sendfile(__dirname + "/node_modules/jquery/dist/jquery.min.js");
});