/ / Как да добавите `jquery` към Express приложението - node.js, express, socket.io, npm

Как да добавите `jquery ', за да изразите

Просто си играх наоколо с един здрав чат express приложение (тук). И забелязах следното в index.html

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

Бях инсталиран

npm install --save socket.io

Как експресът знае къде е, защото няма файл като

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

Например, бих искал да направя същото с jquery

$> npm install --save jquery

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

Това обаче не работи :(

Може ли някой да ми обясни как става това? И по възможност как мога да поправя това jquery.

Отговори:

2 за отговор № 1

Когато инсталирате библиотеката на socket.io от страна на сървъра и след това инициализирате socket.io от страна на сървъра, го предавате като обект за експресно приложение. След това инсталира маршрутизатор за/socket.io/socket.io.js маршрут и когато този маршрут е поискан, товаманипулаторът обслужва съответния клиентски файл от неговия собствен socket.io модул. Клиентският файл не е по този точен път и не е задължително дори да има това име на файла, но когато този маршрут е натиснат, инсталиран от сървъра socket.io route ще обслужва съответния файл за поддръжка от страна на клиента socket.io.

Има хубаво предимство да го направите по този начинтъй като всеки път, когато надграждате вашата сървърна библиотека socket.io, автоматично ще получите нова библиотека от страна на клиента (вградена в библиотеката от страна на сървъра), която винаги ще поддържа двете в синхрон. Ако сте обслужвали отделна библиотека от страна на клиента (от CDN или от вашия собствен маршрут), ще трябва да се уверите, че сте надстроили клиентски и сървърни библиотеки едновременно.


Ако искате да обслужвате jQuery от вашия сървър, тогава можете да използвате express.static() за да поставите jQuery файла на известно място на вашия сървър и да използвате express.static() конфигурация за насочване на конкретен маршрут към правилното място. Вижте Подаване на статични файлове в Express за документация.

Или, ако наистина искате да го направите като socket.io го прави, тогава можете да инсталирате свой собствен маршрут за /jquery/jquery.js и след това обслужвате файла jQuery (откъдето и да го поставите на вашия сървър), когато този път е ударен. Например, тук има персонализиран маршрут за обслужване на конкретна версия на jQuery, откъдето се инсталира с командата, която споменахте npm install --save jquery:

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