我可以将jQuery与Node.js一起使用吗?

2022-08-29 22:40:45

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


答案 1

更新(2018 年 6 月 27 日):看起来有一个重大更新,导致原始答案不再有效。我找到了这个答案,解释了现在如何使用。我已经复制了下面的相关代码。jsdomjsdom

var jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;

var $ = jQuery = require('jquery')(window);

注意:原始答案没有提到您需要安装jsdom以及使用npm install jsdom

更新(2013年末):官方的jQuery团队终于接管了npm上软件包的管理:jquery

npm install jquery

然后:

require("jsdom").env("", function (err, window) {
    if (err) {
        console.error(err);
        return;
    }
    var $ = require("jquery")(window);
});


答案 2

是的,你可以,使用我创建的名为nodeQuery的库

var Express = require('express')
    , dnode = require('dnode')
    , nQuery = require('nodeQuery')
    , express = Express.createServer();

var app = function ($) {
    $.on('ready', function () {
        // do some stuff to the dom in real-time
        $('body').append('Hello World');
        $('body').append('<input type="text" />');
        $('input').live('click', function () {
            console.log('input clicked');
            // ...
        });
    });
};

nQuery
    .use(app);

express
    .use(nQuery.middleware)
    .use(Express.static(__dirname + '/public'))
    .listen(3000);

dnode(nQuery.middleware).listen(express);