как использовать jQuery, установленный с npm в приложении Express?

Если вы хотите как можно ближе подойти к синтаксису выражения, попробуйте функцию range из bash-трюков range.bash .

Для Например, все следующие будут делать то же самое, что и echo {1..10}:

source range.bash
one=1
ten=10

range {$one..$ten}
range $one $ten
range {1..$ten}
range {1..10}

Он пытается поддерживать собственный синтаксис bash с максимально возможным количеством «gotchas»: поддерживаются не только переменные, но часто нежелательное поведение недопустимых диапазонов, предоставляемых как строки (например, for i in {1..a}; do echo $i; done), также предотвращается.

Другие ответы будут работать в большинстве случаев, но все они имеют по крайней мере одно из следующих Недостатки:

  • Многие из них используют подоболочки , что может снизить производительность и , возможно, невозможно на некоторых систем.
  • Многие из них полагаются на внешние программы. Даже seq представляет собой двоичный файл, который должен быть установлен для использования, должен быть загружен bash и должен содержать ожидаемую программу, чтобы он работал в этом случае.
  • Решения, которые используют только собственные функции Bash, такие как @ ephemient, не будут работать в алфавитном диапазоне, например {a..z}; расширение скобки будет. Вопрос был о диапазонах номеров , хотя это так.
  • Большинство из них не визуально похожи на синтаксис диапазона расширенного набора {1..10}, поэтому программы, которые используют оба варианта, могут быть немного труднее читать.
  • @ Ответ bobbogo использует некоторый знакомый синтаксис, но делает что-то неожиданное, если переменная $END не является допустимым диапазоном «bookend» для другая сторона диапазона. Если END=a, например, ошибка не будет выполнена, и будет передано дословное значение {1..a}. Это также поведение Bash по умолчанию - это просто неожиданно.

Отказ от ответственности: я являюсь автором связанного кода.

29
задан Jean-Philippe Bond 1 August 2014 в 07:52
поделиться

4 ответа

Когда вы устанавливаете jQuery с помощью npm, это потому, что вы хотите использовать jQuery на стороне сервера вашего приложения (например, в вашем файле app.js). Вам все еще нужно добавить jQuery на свою веб-страницу следующим образом:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

Если вы хотите использовать его на стороне клиента. Если вы используете Jade, добавьте тег script в свой шаблон.

22
ответ дан Jean-Philippe Bond 1 August 2014 в 07:52
поделиться

Если вы хотите, чтобы модуль jquery npm обслуживался приложением Express, добавьте эту строку в скрипт сервера (в вашем случае app.js):

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/'));

После этого вы можете включить его в Ваш HTML-файл:

<script src="/jquery/jquery.js"></script>
53
ответ дан Lukasz Wiktor 1 August 2014 в 07:52
поделиться

Способ использования jquery из npm:

В app.js

app.use('/assets', [
    express.static(__dirname + '/node_modules/jquery/dist/'),
    express.static(__dirname + '/node_modules/materialize-css/dist/'),
    ...
]);

В шаблоне макета:

<script src="/assets/jquery.min.js"></script>
<script src="/assets/js/materialize.min.js"></script>

надеюсь, что этот код поможет вам!

8
ответ дан Dung Vu 1 August 2014 в 07:52
поделиться

Я использую экспресс 4.10.2. и я последовал за ответом Лукаша Виктора, но он не сработал для меня. Мне пришлось немного изменить решение Lukasz:

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/'));

в html-файле, который я также включил:

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

Так что / jquery - точка монтирования / node_modules / jquery / dist / directory.

8
ответ дан Costas Develop 1 August 2014 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: