Javascript 如何在Express app中使用与npm一起安装的jQuery?

Javascript 如何在Express app中使用与npm一起安装的jQuery?,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我有一个node.js+express应用程序,我用npm安装了jQuery 在我使用的app.js文件中 var jquery = require('jquery'); 在html文件头中,我包含了使用jQuery的javascript,我得到了“jQuery未定义”。 这是一个顺序问题还是我遗漏了什么?当您使用npm安装jQuery时,这是因为您希望在应用程序的服务器端使用jQuery(例如:在app.js文件中)。您仍然需要将jQuery添加到您的网页,如下所示: <script

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

在我使用的
app.js
文件中

var jquery = require('jquery');
在html文件头中,我包含了使用jQuery的javascript,我得到了“jQuery未定义”。
这是一个顺序问题还是我遗漏了什么?

当您使用
npm
安装
jQuery
时,这是因为您希望在应用程序的服务器端使用
jQuery
(例如:在
app.js
文件中)。您仍然需要将
jQuery
添加到您的网页,如下所示:

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


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

如果您希望express app为jquery npm模块提供服务,请将此行添加到服务器脚本中(在您的示例中是
app.js
):

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

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

我正在使用express 4.10.2。我听从了卢卡斯·维克托的回答,但对我来说并不奏效。我不得不稍微改变一下Lukasz的解决方案:

app.use('/jquery', express.static(__dirname + '/node_modules/jquery/dist/'));
在html文件中,我还包括:

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


因此/jquery是/node\u modules/jquery/dist/目录的安装点。

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


希望这段代码对你有帮助

你说的是哪个头球?你能发布你的javascript代码吗?主要的问题是为什么你想在node中使用jQuery?它运行大量为旧JavaScript规范设计的代码,以与浏览器兼容。这可能很有趣:您可以在服务器端使用jQuery执行的大多数操作,例如,您也可以使用下划线。@esp我不了解的是,服务器和客户端使用不同的jQuery文件,我想用NPM安装它会在客户端为我提供jQuery。它应该是
app.use('/jQuery',express.static(uuu dirname+/node\u modules/jquery/dist/);
否则是404谢谢!公认的答案很奇怪。或者
npm安装serve static
然后
var serveStatic=require('serve-static')
app.use(serveStatic('node\u modules…'))
很好!尽管我建议使用
path.join(uu dirname,'node_modules','jquery','dist')
为了使用平台特定的分隔符,请查看详细说明:为什么要在服务器端使用jquery,Jean?@GovindRai来生成HTML、在字符串中操作DOM等。如果您想了解更多信息,请查看此库,它是服务器端jquery的实现:。
<script src="/assets/jquery.min.js"></script>
<script src="/assets/js/materialize.min.js"></script>