क्या मैं Node.js के साथ jQuery का उपयोग कर सकता हूं?


574

क्या Node.js का उपयोग करके सर्वर-साइड पर jQuery चयनकर्ताओं / DOM हेरफेर का उपयोग करना संभव है?


3
मुझे आश्चर्य है: जब आप क्लाइंट-साइड पर कर सकते हैं तो सर्वर-साइड पर उपयोग क्यों करें?
इनक गमूस

31
शायद आप एक वेब स्क्रैपर बनाना चाहते हैं जो नियमित अंतराल पर विशिष्ट जानकारी को स्क्रैप करता है और एक डेटाबेस में परिणाम संग्रहीत करता है? यह क्लाइंट-साइड से उतना व्यावहारिक नहीं होगा।
ट्रेवर

2
आपको फैंटमज पर भी एक नज़र डालनी चाहिए, जो आपको वी 8 इंजन के साथ एक ब्राउज़र सर्वर साइड का अनुकरण करने की अनुमति देता है।
दिमित्री कोपरिवा

2
क्रॉलर बनाते समय सर्वर साइड पर @deeperx DOM हेरफेर उपयोगी हो सकता है। इस जवाब को देखें ।
लुसियो पाइवा

हाँ - इस जवाब पर एक नज़र है - मैं चीयरियो का उपयोग करते हुए इसे पसंद करता हूं, क्योंकि आपको jQuery चयनकर्ता की पूरी शक्ति मिलती है।
मोनिका मेवेंकैंप

जवाबों:


563

अद्यतन (२ there-जून -१:) : ऐसा लगता है 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);

नोट: मूल उत्तर यह उल्लेख करने में विफल रहता है कि आपको jsdom के साथ-साथ उपयोग करने की आवश्यकता होगीnpm install jsdom

अपडेट (2013 के अंत में) : आधिकारिक jQuery टीम ने आखिरकार jquerynpm पर पैकेज का प्रबंधन संभाला :

npm install jquery

फिर:

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


43
यह npm मॉड्यूल के साथ n.js से jQuery के अजाक्स का उपयोग करना संभव है?
अज्जी

22
विंडोज पर ( महत्वपूर्ण काम के बिना ) स्थापित नहीं होता है , इस मामले में मैं चीयरियो
साइमन ईस्ट

7
+1 यह दिखाने के लिए कि npm कहाँ मिलता है :) ज्यादातर लोगों को सामान का उल्लेख करने की बुरी आदत है जैसे कि यह एक दिया जाना चाहिए (सामान्य ज्ञान)
Val

12
यह लौटता है require("...").env is not a function
बंदरिया

4
@ बन्दर मेरे साथ भी वही, कोई आइडिया? त्रुटि:TypeError: require(...).env is not a function
coderInrRain

58

हाँ, आप एक पुस्तकालय का उपयोग कर सकते हैं, जिसे मैंने नोडविक् क कहा है

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);

20
ध्यान दें कि नोडिवा वास्तव में उपयोगकर्ता के पृष्ठ को वास्तविक समय में बदल रहा है, इसलिए यह अपेक्षा से भी अधिक ठंडा है।
एलिसियोएलेक्स

मैं कुछ इस तरह से खोज रहा था जब मैं यहाँ ठोकर खाई ... मैंने अभी-अभी nQuery और jquery नोड पैकेज को देखा है और nQuery को एक साल पहले अपडेट किया गया था जहाँ jquery कल था ... nQuery अब विकसित नहीं हुआ है? और nQuery के रूप में jquery ग्राहक पक्ष को प्रभावित करता है? किसी ने उन दोनों की कोशिश की है शायद?
लोगन

2
@Logan nQuery मूल रूप से सिर्फ jquery है। अंतर यह है कि कोड सर्वर पर चलाया जाता है और ब्राउज़र को jquery कोड देने के बजाय, यह सर्वर पर कोड चलाता है और दूर से जुड़े ब्राउज़रों पर डोम हेरफेर को दूरस्थ रूप से निष्पादित करता है। यह भी ध्यान दें कि nQuery एक प्रायोगिक परियोजना थी, और जब मैं बग को ठीक करने के लिए पुल अनुरोधों को स्वीकार करूंगा, तो इसे कभी भी किसी विशेष उद्देश्य या परियोजना के लिए नहीं बनाया गया था, क्योंकि इसमें कई कमिट नहीं हुए हैं
थॉमस ब्लोबम

@ThomasBlobaum मेरे लिए काम नहीं कर रहा है, त्रुटि: , express = Express.createServer();और TypeError: Express.createServer is not a functionकोई विचार?
कोडरइनरैन

@ThomasBlobaum ऐसा लगता है जैसे आपको एक्सप्रेस का नवीनतम संस्करण नहीं मिला है। npm install --save expressअपने कमांड प्रॉम्प्ट में प्रयास करें ।
गिल्बर्ट-वी

55

लेखन के समय भी बनाए हुए चेरियो है

विशेष रूप से सर्वर के लिए डिज़ाइन किया गया कोर jQuery का तेज, लचीला और दुबला कार्यान्वयन।


2
चेरियो के लिए +1। दूसरी ओर, विंडोज़ पर चलने के लिए वास्तव में दर्दनाक है।
साइमन ईस्ट

1
क्या Cheerio आस्थगित घटनाओं और अजाक्स कॉल का उपयोग कर सकता है?
हॉफमैन

6
बहुत से चयनकर्ताओं का समर्थन नहीं करता है जैसे:gt(1)
१४'१४

1
मेरे अनुभव में यह सबसे अच्छा काम करता है। यह JSDOM की तुलना में बहुत तेज है।
जेसन प्रॉन

1
@ हॉफमैन, मैंने आपके लिए डॉक्स जांचने के लिए एक दूसरा खर्च किया। नहीं, यह नहीं है। Cheerio में केवल DOM से संबंधित विधियाँ हैं।
डेनिस

39

अब आप कर सकते हैं jsdom का उपयोग करना । उदाहरण निर्देशिका में उनके jquery उदाहरण देखें।


jsdom के jQueryify () का एक नीचे पक्ष यह है कि यह पृष्ठ की सभी स्क्रिप्ट चलाता है।
आकर्षित किया

और यह बहुत सारे सिरदर्द के बिना विंडोज पर काम नहीं करता है
जेसन गोएमाट

1
2016 में अब आपको jsdom की आवश्यकता नहीं है - मेरा उत्तर देखें: stackoverflow.com/a/40656811/3391783
low_rents

34

Cheerio का उपयोग कर एक साधारण क्रॉलर

Node.js. में एक सरल क्रॉलर बनाने के लिए यह मेरा सूत्र है यह सर्वर साइड पर DOM मैनिपुलेशन करने का मुख्य कारण है और शायद यही कारण है कि आप यहां आए।

सबसे पहले, requestपृष्ठ को पार्स करने के लिए डाउनलोड करने के लिए उपयोग करें। जब डाउनलोड पूरा हो जाता है, तो इसे हैंडल करें cheerioऔर जैसे कि jQuery का उपयोग कर डोम हेरफेर शुरू करें।

कार्य उदाहरण:

var
    request = require('request'),
    cheerio = require('cheerio');

function parse(url) {
    request(url, function (error, response, body) {
        var
            $ = cheerio.load(body);

        $('.question-summary .question-hyperlink').each(function () {
            console.info($(this).text());
        });
    })
}

parse('http://stackoverflow.com/');

यह उदाहरण SO होम पेज पर दिखाए जाने वाले सभी शीर्ष प्रश्नों के कंसोल पर प्रिंट होगा। यही कारण है कि मैं Node.js और इसके समुदाय से प्यार करता हूं। यह उससे आसान नहीं हो सकता है :-)

निर्भरता स्थापित करें:

npm स्थापित अनुरोध चीयरियो

और चला (ऊपर की स्क्रिप्ट फ़ाइल में है crawler.js)

नोड क्रॉलर.जेएस


एन्कोडिंग

कुछ पृष्ठों में एक निश्चित एन्कोडिंग में गैर-अंग्रेजी सामग्री होगी और आपको इसे डिकोड करना होगा UTF-8। उदाहरण के लिए, ब्राज़ीलियाई पुर्तगाली में एक पेज (या लैटिन मूल की कोई अन्य भाषा) संभवतः ISO-8859-1(उर्फ " लैटिन 1 ") में एन्कोड किया जाएगा । जब डिकोडिंग की आवश्यकता होती है, तो मैं requestकिसी भी तरह से सामग्री की व्याख्या नहीं करने के लिए कहता हूं और इसके बजाय iconv-liteकाम करने के लिए उपयोग करता हूं।

कार्य उदाहरण:

var
    request = require('request'),
    iconv = require('iconv-lite'),
    cheerio = require('cheerio');

var
    PAGE_ENCODING = 'utf-8'; // change to match page encoding

function parse(url) {
    request({
        url: url,
        encoding: null  // do not interpret content yet
    }, function (error, response, body) {
        var
            $ = cheerio.load(iconv.decode(body, PAGE_ENCODING));

        $('.question-summary .question-hyperlink').each(function () {
            console.info($(this).text());
        });
    })
}

parse('http://stackoverflow.com/');

चलाने से पहले, निर्भरता स्थापित करें:

npm स्थापित अनुरोध आइकनव-लाइट चीयरियो

और फिर अंत में:

नोड क्रॉलर.जेएस


निम्नलिखित लिंक

अगला कदम लिंक का पालन करना होगा। मान लें कि आप SO के प्रत्येक शीर्ष प्रश्न के सभी पोस्टरों को सूचीबद्ध करना चाहते हैं। आपको पहले सभी शीर्ष प्रश्नों (उदाहरण के ऊपर) को सूचीबद्ध करना होगा और फिर प्रत्येक लिंक को दर्ज करना होगा, जिसमें शामिल उपयोगकर्ताओं की सूची प्राप्त करने के लिए प्रत्येक प्रश्न के पृष्ठ को पार्स करना होगा।

जब आप लिंक का अनुसरण करना शुरू करते हैं, तो कॉलबैक नरक शुरू हो सकता है। उससे बचने के लिए, आपको किसी तरह के वादे, वायदे या जो भी उपयोग करने चाहिए। मैं हमेशा अपने टूलबेल में async रखता हूं। इसलिए, यहाँ async का उपयोग करके क्रॉलर का एक पूर्ण उदाहरण दिया गया है:

var
    url = require('url'),
    request = require('request'),
    async = require('async'),
    cheerio = require('cheerio');

var
    baseUrl = 'http://stackoverflow.com/';

// Gets a page and returns a callback with a $ object
function getPage(url, parseFn) {
    request({
        url: url
    }, function (error, response, body) {
        parseFn(cheerio.load(body))
    });
}

getPage(baseUrl, function ($) {
    var
        questions;

    // Get list of questions
    questions = $('.question-summary .question-hyperlink').map(function () {
        return {
            title: $(this).text(),
            url: url.resolve(baseUrl, $(this).attr('href'))
        };
    }).get().slice(0, 5); // limit to the top 5 questions

    // For each question
    async.map(questions, function (question, questionDone) {

        getPage(question.url, function ($$) {

            // Get list of users
            question.users = $$('.post-signature .user-details a').map(function () {
                return $$(this).text();
            }).get();

            questionDone(null, question);
        });

    }, function (err, questionsWithPosters) {

        // This function is called by async when all questions have been parsed

        questionsWithPosters.forEach(function (question) {

            // Prints each question along with its user list
            console.info(question.title);
            question.users.forEach(function (user) {
                console.info('\t%s', user);
            });
        });
    });
});

दौड़ने से पहले:

npm स्थापित async चीयरियो अनुरोध

एक परीक्षण चलाएँ:

नोड क्रॉलर.जेएस

नमूना उत्पादन:

Is it possible to pause a Docker image build?
    conradk
    Thomasleveil
PHP Image Crop Issue
    Elyor
    Houston Molinar
Add two object in rails
    user1670773
    Makoto
    max
Asymmetric encryption discrepancy - Android vs Java
    Cookie Monster
    Wand Maker
Objective-C: Adding 10 seconds to timer in SpriteKit
    Christian K Rider

और यही वह मूल है जो आपको अपने क्रॉलर्स बनाने के लिए पता होना चाहिए :-)


पुस्तकालयों का इस्तेमाल किया


22

2016 में चीजें आसान हो गई हैं। अपने कंसोल के साथ नोड.जेएस को jquery स्थापित करें:

npm install jquery

इसे चर $में बाँधें (उदाहरण के लिए - मैं इसका उपयोग करता हूँ) अपने नोड.जेएस कोड में:

var $ = require("jquery");

कार्य करना:

$.ajax({
    url: 'gimme_json.php',
    dataType: 'json',
    method: 'GET',
    data: { "now" : true }
});

यह gulp के लिए भी काम करता है क्योंकि यह नोड पर आधारित है।


आप किस नोड के संस्करण का उपयोग कर रहे हैं? मैक पर, नोड 6.10.2, jquery 2.2.4, var $ = require("jquery"); $.ajax // undefined (पल के लिए डाउनवोटेड)।
एजेपी

@AJP और आपको यकीन है कि आपने npm install jqueryपहले किया था ?
लो_रेंट्स

1
हाँ। > console.log(require("jquery").toString());मुझे फैक्ट्री फंक्शन देता है: function ( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); } मुझे ऊपर दिए गए उत्तर का उपयोग jsdom के साथ करना था: stackoverflow.com/a/4129032/539490
AJP

@AJP ठीक है, यह अजीब है।
लो_रेंट्स

मुझे ठीक वैसा ही फैक्ट्री फंक्शन मिलता है जैसा @AJP करता है। @L_rents का आपने किस संस्करण में jquery का उपयोग किया था?
बोरिस बुर्कोव

18

मुझे विश्वास है कि इसका उत्तर अब हां है।
https://github.com/tmpvar/jsdom

var navigator = { userAgent: "node-js" };  
var jQuery = require("./node-jquery").jQueryInit(window, navigator);

9
मुझे यह जानकर खेद है कि jQuery को चलाने के लिए jQuery प्राप्त करने के लिए अधिक काम करना होगा। Sizzle हालांकि काम करता है! मैं वास्तव में संभव के रूप में प्रकाश रखना चाहता हूँ, इसलिए env.js की तरह पूर्ण ब्राउज़र अनुकरण में जोड़ना इस समय वास्तव में प्राथमिकता नहीं है।
tmpvar

कोई बात नहीं, मुझे संशोधित प्रति मिली जो कि jsdom के साथ बंडल है।
21

FYI करें नोड- jquery को अब jquery के पक्ष में हटा दिया गया है
रुस्लान लोपेज़

1
संदर्भ: खिड़की परिभाषित नहीं है
बॉन

17

npm install jquery --save # नोट सभी लोअरकेस

npm install jsdom --save

const jsdom = require("jsdom");
const dom = new jsdom.JSDOM(`<!DOCTYPE html>`);
var $ = require("jquery")(dom.window);


$.getJSON('https://api.github.com/users/nhambayi',function(data) {
  console.log(data);
});

यह साफ जवाब है! pls इसे
आगे बढ़ाएं

8

jQuery मॉड्यूल का उपयोग कर स्थापित किया जा सकता है:

npm install jquery

उदाहरण:

var $ = require('jquery');
var http = require('http');

var options = {
    host: 'jquery.com',
    port: 80,
    path: '/'
};

var html = '';
http.get(options, function(res) {
res.on('data', function(data) {
    // collect the data chunks to the variable named "html"
    html += data;
}).on('end', function() {
    // the whole of webpage data has been collected. parsing time!
    var title = $(html).find('title').text();
    console.log(title);
 });
});

Node.js ** में jQuery के संदर्भ **


2
मेरे लिए काम नहीं करता है ... C: \ ... \\ नोड_मॉड्यूल्स \ jquery \ dist \ jquery.js: 31 थ्रो नई त्रुटि ("jQuery को एक दस्तावेज के साथ एक विंडो की आवश्यकता है"); ^ त्रुटि: jQuery module.exports पर एक दस्तावेज के साथ एक खिड़की की आवश्यकता है (C: \ ... \ WebContent \ संसाधन \ js \ node_modules \ jQuery \ जिले \ jquery.js: 31: 12)
जोस मैन्युअल गोमेज़ अल्वारेज़

var jsdom = आवश्यकता ("jsdom"); var विंडो = jsdom.jsdom ()। defaultView; jsdom.jQueryify (विंडो, " code.jquery.com/jquery.js ", फ़ंक्शन () {var $ = window। $; $ ("बॉडी")। Prepend ("<h1> शीर्षक </ h1>")। ; कंसोल। स्लोग ($ ("एच 1")। html ());});
सुंदराजन के

7

आपको नई JSDOM API का उपयोग करके विंडो प्राप्त करनी होगी।

const jsdom = require("jsdom");
const { window } = new jsdom.JSDOM(`...`);
var $ = require("jquery")(window);

HTML .5 समर्थन के लिए .JSDOM ( ...) होना चाहिए .JSDOM ("<! DOCTYPE html>")?
डेटिनडोकॉक

2

चेतावनी

यह समाधान, जैसा कि गोलो रोडेन ने उल्लेख किया है, सही नहीं है । लोगों को उनके वास्तविक jQuery कोड को नोड ऐप संरचना का उपयोग करके चलाने में मदद करने के लिए यह केवल एक त्वरित समाधान है, लेकिन यह नोड दर्शन नहीं है क्योंकि jQuery अभी भी सर्वर साइड पर क्लाइंट पक्ष पर चल रहा है। मुझे गलत उत्तर देने के लिए खेद है।


आप जेड को नोड के साथ भी प्रस्तुत कर सकते हैं और अपना jQuery कोड अंदर रख सकते हैं। यहाँ जेड फ़ाइल का कोड है:

!!! 5
html(lang="en")
  head
    title Holamundo!
    script(type='text/javascript', src='http://code.jquery.com/jquery-1.9.1.js')
  body
    h1#headTitle Hello, World
    p#content This is an example of Jade.
    script
      $('#headTitle').click(function() {
        $(this).hide();
      });
      $('#content').click(function() {
        $(this).hide();
      });

4
डाउनवोट किया गया क्योंकि प्रश्न ने स्पष्ट रूप से कहा कि यह सर्वर-साइड पर jQuery के बारे में है। बस jQuery को एक जेड फ़ाइल में एम्बेड करके jQuery अभी भी क्लाइंट-साइड पर चलाया जाता है। इसलिए, यह उत्तर मदद नहीं करता है: - /
गोलो रोडेन

2
ठीक है आपका बहुत बहुत धन्यवाद। मैं इसे समझ गया हूं। मैं जवाब में इसे स्पष्ट करने की कोशिश करूंगा ताकि इसे पढ़ने वाले लोगों को भ्रमित न किया जा सके। आपकी मदद के लिए फिर से धन्यवाद गोलो।
टिमबर्गस

2
आपका स्वागत है :-)। और कोई बात नहीं: हम सभी अपनी गलतियाँ करते हैं, इसलिए चिंता न करें :-)
गोलो रोडेन

2

मेरा काम कोड है:

npm install jquery

और फिर:

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

या यदि खिड़की मौजूद है, तो:

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

1

मॉड्यूल jsdom एक बेहतरीन टूल है। लेकिन अगर आप पूरे पृष्ठों का मूल्यांकन करना चाहते हैं और उनके सर्वर पर कुछ फंकी चीजें करना चाहते हैं, तो मैं उन्हें उनके संदर्भ में चलाने का सुझाव देता हूं:

vm.runInContext

तो साइट पर require/ जैसी चीजें CommonJSआपकी नोड प्रक्रिया को स्वयं नहीं उड़ाएंगी।

आप यहाँ प्रलेखन पा सकते हैं । चीयर्स!


1

Jsdom v10 के रूप में, .env () फ़ंक्शन को हटा दिया जाता है। Jquery के लिए बहुत सी चीजों की कोशिश करने के बाद मैंने इसे नीचे पसंद किया:

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

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

आशा है कि यह आपकी या किसी ऐसे व्यक्ति की मदद करता है जो इस प्रकार के मुद्दों का सामना कर रहा है।


TypeError: JSDOM is not a constructor
नाथन हाक

यदि आप नोड पक्ष पर jQuery चला रहे हैं, तो सबसे पहले, npm इंस्टॉल का उपयोग करके jquery और jsdom स्थापित करें। फिर, उस फ़ाइल में उपरोक्त पंक्तियाँ जोड़ें जिसमें आप jquery चयनकर्ता का उपयोग करने का प्रयास कर रहे हैं। उदाहरण के लिए, मैंने a का उपयोग किया है $.each। मैंने बस इन पंक्तियों को शामिल किया और फिर इसे नीचे की तरह किया: $.each(errors, function (ind,error) { res.send(error.msg);console.log(error.msg); }); आशा है कि यह मदद करता है !!
प्लैबोन दत्ता

किसी तरह jsdom ने बिल्कुल भी इंस्टॉल नहीं करने का फैसला किया था। मुझे लगता है मैं अभी भी npm बाहर लगा रहा हूँ। साभार @
नाथन हाक

1

सबसे पहले इसे इंस्टॉल करें

npm install jquery -S

इसे स्थापित करने के बाद, आप इसे नीचे के रूप में उपयोग कर सकते हैं

import $ from 'jquery';
window.jQuery = window.$ = $;
$(selector).hide();

आप एक पूरा ट्यूटोरियल देख सकते हैं जो मैंने यहाँ लिखा था: https://medium.com/fbdevclagos/how-to-use-jquery-on-node-df731bd6abc7


0

इनमें से किसी भी समाधान ने मेरे इलेक्ट्रॉन ऐप में मेरी मदद नहीं की है।

मेरा समाधान (समाधान):

npm install jquery

आपकी index.jsफ़ाइल में:

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

अपनी .jsफाइलों में इस तरह से अपने jQuery के कार्यों को लिखें:

jQuery(document).ready(function() {

0

हाँ, के jQueryसाथ इस्तेमाल किया जा सकता है Node.js

नोड परियोजना में jQuery शामिल करने के लिए कदम: -

npm i jquery --save कोड में jquery शामिल करें

import jQuery from 'jquery';

const $ = jQuery;

मैं विशेष रूप से क्रोम एक्सटेंशन की परियोजना में नोड्स के प्रोजेक्ट्स में jquery का उपयोग करता हूं।

जैसे https://github.com/fxnoob/gesture-control-chrome-extension/blob/master/src/default_plugins/tab.js


-1

नहीं, यह एक ब्राउज़र वातावरण को नोड में पोर्ट करने के लिए काफी बड़ा प्रयास है।

एक अन्य दृष्टिकोण, जो मैं वर्तमान में इकाई परीक्षण के लिए जांच कर रहा हूं, वह है jQuery का "मॉक" संस्करण बनाना जो कॉलबैक प्रदान करता है जब भी एक चयनकर्ता को बुलाया जाता है।

इस तरह से आप वास्तव में एक डोम होने के बिना अपने jQuery प्लगइन्स का परीक्षण कर सकते हैं। आपको अभी भी वास्तविक ब्राउज़रों में परीक्षण करना होगा कि आपका कोड जंगल में काम करता है या नहीं, लेकिन यदि आप ब्राउज़र विशिष्ट मुद्दों की खोज करते हैं, तो आप आसानी से अपने यूनिट परीक्षणों में उन लोगों को "मॉक" कर सकते हैं।

एक बार दिखाने के लिए तैयार होने के बाद मैं कुछ को github.com/felixge पर धकेलूंगा।


मुझे यह विचार पसंद है ... यह करना काफी आसान होना चाहिए।
सुधीर जोनाथन

-1

आप इलेक्ट्रॉन का उपयोग कर सकते हैं , यह हाइब्रिड ब्राउज़रज और नोडज की अनुमति देता है।

इससे पहले, मैंने नोडज में कैनवस 2 डी का उपयोग करने की कोशिश की, लेकिन आखिरकार मैंने हार मान ली। यह नोडज डिफ़ॉल्ट रूप से समर्थित नहीं है, और इसे स्थापित करने के लिए बहुत मुश्किल है (कई ... निर्भरताएं)। जब तक मैं इलेक्ट्रॉन का उपयोग करता हूं, तब तक मैं आसानी से अपने सभी पिछले ब्राउज़रज कोड, यहां तक ​​कि वेबजीएल का उपयोग कर सकता हूं, और परिणाम मान (जैसे। परिणाम 6464 छवि डेटा) को नोडज कोड में भेज सकता हूं।


-9

मेरी जानकारी में नहीं। DOM एक क्लाइंट साइड चीज़ है (jQuery HTML को पार्स नहीं करता है, लेकिन DOM)।

यहाँ कुछ वर्तमान Node.js परियोजनाएँ हैं:

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

और शमौन के djangode बहुत अच्छा शांत है ...


काश यह संभव होता। मैं पहले से ही एक नोड पर jquery सहित की कोशिश की। परियोजना और निश्चित रूप से यह काम नहीं किया। jQuery दस्तावेज़ / विंडो पर आधारित है। राइनो jQuery सर्वर पक्ष को चलाने में सक्षम है: ejohn.org/blog/bringing-the-browser-to-the-server मैं अधिक पार्सर्स देखने जा रहा हूं। शायद वहाँ एक है जो ब्राउज़र पर निर्भर नहीं करता है।
जॉन

@ जॉन: राइनो पर चलने वाला एकमात्र कारण इस परियोजना के कारण है: github.com/jeresig/env-js/blob/master/src/env.js यह DOM और जावास्क्रिप्ट रनटाइम के एक छोटे से हिस्से का अनुकरण करता है। यह जावा एपिस पर निर्भर करता है इसलिए Node.js (जो V8 / C ++ का उपयोग करता है) के लिए नो-गो है।
वर्धमान ताजा

2
@ नोसेरेडना जबकि यह सच हो सकता है जब आपने इसे लिखा था, यह स्पष्ट रूप से सच नहीं है। मेरा सुझाव है कि अब आप अपना उत्तर हटा दें।
कीथ पिंसन

-18

एक विकल्प अंडरस्कोर.जे का उपयोग करना है । यह प्रदान करना चाहिए कि आपको JQuery से सर्वर-साइड क्या चाहिए था।


10
क्या तुम समझा सकते हो? jQuery के टन डोम हेरफेर / ट्रैवर्सिंग / फ़िल्टरिंग एपीआई प्रदान करता है। अंडरस्कोर जेनेरिक लाइब्रेरी उपयोगिताओं की तरह दिखता है जिनका डोम के साथ कोई लेना-देना नहीं है।
पीटर लियोंस

1
यहाँ भी, मैं नहीं देखता कि यह कैसे प्रासंगिक है दोनों पूरक हैं, विकल्प नहीं
यी जियांग

2
यह जवाब पूरी तरह से गलत नहीं है। jQuery और अंडरस्कोर ओवरलैप करते हैं: वे दोनों फॉरएच जैसी सुविधाएँ प्रदान करते हैं।
tuomassalo

8
-1 उनके पास अतिव्यापी कार्यक्षमता है लेकिन अंडरस्कोर एक jQuery प्रतिस्थापन नहीं है।
सैम

2
हालांकि सवाल डोम हेरफेर / चयनकर्ताओं के बारे में पूछ रहा है।
mikermcneil
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.