37

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

app.js我使用的文件中

var jquery = require('jquery');

在 html 文件头中,我包含了使用 jQuery 的 javascript,我得到“未定义 jQuery”。是秩序井然还是我错过了什么?

4

4 回答 4

68

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

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

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

<script src="/jquery/jquery.js"></script>
于 2015-04-09T11:15:41.787 回答
23

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

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

于 2013-01-10T20:05:42.947 回答
11

从 npm 使用 jquery 的方法:

在 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>

希望这段代码对你有帮助!

于 2017-12-13T06:12:15.200 回答
9

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

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

在 html 文件中,我还包括:

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

所以 /jquery 是 /node_modules/jquery/dist/ 目录的挂载点。

于 2015-08-05T10:47:30.197 回答