是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?
当前回答
更新(6月27日-18日):看起来jsdom有一个重大更新,导致原来的答案不再工作。我找到了这个解释如何使用jsdom的答案。我复制了下面的相关代码。
var jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
var $ = jQuery = require('jquery')(window);
注意:原来的答案没有提到你也需要使用npm install jsdom来安装jsdom
更新(2013年底):官方jQuery团队终于接管了npm上jQuery包的管理:
npm install jquery
然后:
require("jsdom").env("", function (err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
其他回答
据我所知没有。DOM是一个客户端的东西(jQuery不解析HTML,但解析DOM)。
下面是一些当前的Node.js项目:
https://github.com/ry/node/wiki (https://github.com/nodejs/node)
SimonW的djangode非常酷…
在写这篇文章的时候,也有保持的Cheerio。
快速,灵活,精益的实现核心jQuery设计 特别是针对服务器。
我手动简单地做了,没有任何额外的包或代码。
npm i jquery
然后我复制jquery.min.js文件从node_modules/jquery/dist目录到public/js
<script type='text/javascript' src='/js/jquery.min.js'></script>
<script>
$(document).ready(function() { console.log( "ready!" ); });
</script>
它会起作用的。测试它
注意,复制/粘贴文件并不是最理想的事情,你可以将文件启用为静态文件,这样expressJS就可以读取它了。但对我来说,把它复制到静态公共目录更容易。
这些解决方案在我的电子应用程序中没有一个对我有帮助。
我的解决方案(变通方案):
npm install jquery
在index.js文件中:
var jQuery = $ = require('jquery');
在你的.js文件中,以这样的方式编写jQuery函数:
jQuery(document).ready(function() {
2016年,事情就简单多了。使用控制台将jquery安装到node.js:
npm install jquery
将它绑定到node.js代码中的变量$(例如-我习惯了它):
var $ = require("jquery");
做的东西:
$.ajax({
url: 'gimme_json.php',
dataType: 'json',
method: 'GET',
data: { "now" : true }
});
也适用于gulp,因为它基于node.js。