如何在Express应用程序中使用npm安装的jQuery?

ily*_*lyo 31 javascript jquery node.js express

我有一个node.js + express应用程序,我用npm安装了jQuery.

app.js我使用的文件中

var jquery = require('jquery');
Run Code Online (Sandbox Code Playgroud)

在html文件头中我包含了使用jQuery的javascript,我得到了"jQuery未定义".这是订单还是我错过了什么?

Luk*_*tor 58

如果您希望快速应用程序为jquery npm模块提供服务,请将此行添加到服务器脚本(在您的情况下app.js):

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/'));
Run Code Online (Sandbox Code Playgroud)

之后,您可以将其包含在您的html文件中:

<script src="/jquery/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

  • 我认为这应该是公认的答案 (5认同)
  • 伟大的!虽然我建议使用 `path.join(__dirname, 'node_modules', 'jquery', 'dist')` 以便它与平台特定的分隔符一起使用,但请查看详细说明:https://stackoverflow.com/questions /9756567/你需要使用路径加入节点js吗 (2认同)

Jea*_*ond 23

当您jQuery使用npm它进行安装时,因为您想jQuery在应用程序的服务器端使用(例如:在您的app.js文件中).您还需要jQuery像这样添加到您的网页:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

如果你想在客户端使用它.如果您使用Jade,请将脚本标记添加到模板中.

  • 为什么要在服务器端使用 jquery,Jean? (2认同)
  • @GovindRai 用于生成 HTML、在字符串中操作 DOM 等。如果您想了解更多,请查看此库,它是服务器端的 JQuery 实现:https://github.com/cheeriojs/cheerio。 (2认同)

IT *_*ogs 9

从npm使用jquery的方法:

在app.js

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

在布局模板中:

<script src="/assets/jquery.min.js"></script>
<script src="/assets/js/materialize.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

希望这段代码能帮到你!


小智 8

我正在使用快递4.10.2.我跟着Lukasz Wiktor回答,但它对我不起作用.我不得不改变Lukasz解决方案:

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/'));
Run Code Online (Sandbox Code Playgroud)

在html文件中我还包括:

<script src="/jquery/jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

所以/ jquery是/ node_modules/jquery/dist /目录的安装点.