是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?


当前回答

你可以使用Electron,它允许混合browserjs和nodejs。

之前,我尝试在nodejs中使用canvas2d,但最后我放弃了。它不被nodejs默认支持,并且很难安装它(很多很多…dependeces)。 直到我使用电子,我可以很容易地使用所有我以前的browserjs代码,甚至WebGL,并传递结果值(例如。结果base64图像数据)到nodejs代码。

其他回答

我的工作代码是:

npm install jquery

然后:

global.jQuery   = require('jquery');
global.$        = global.jQuery;

或者如果窗口存在,则:

typeof window !== "undefined" ? window : this;
window.jQuery   = require('jquery');
window.$        = window.jQuery;

据我所知没有。DOM是一个客户端的东西(jQuery不解析HTML,但解析DOM)。

下面是一些当前的Node.js项目:

https://github.com/ry/node/wiki (https://github.com/nodejs/node)

SimonW的djangode非常酷…

我手动简单地做了,没有任何额外的包或代码。

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就可以读取它了。但对我来说,把它复制到静态公共目录更容易。

另一种选择是使用Underscore.js。它应该提供您可能需要的JQuery服务器端功能。

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。