আমি কি Node.js এর সাথে jQuery ব্যবহার করতে পারি?


574

Node.js ব্যবহার করে সার্ভার-সাইডে jQuery নির্বাচনকারী / DOM ম্যানিপুলেশন ব্যবহার করা সম্ভব?


3
আমি অবাক হই: আপনি ক্লায়েন্ট-সাইডে এটি করতে পারার সময় কেন সার্ভার-সাইডে ব্যবহার করবেন?
ইনঙ্ক গুমাস

31
সম্ভবত আপনি একটি ওয়েব স্ক্র্যাপার তৈরি করতে চান যা নিয়মিত বিরতিতে নির্দিষ্ট তথ্য স্ক্র্যাপ করে এবং ফলাফলকে একটি ডাটাবেসে সংরক্ষণ করে? এটি ক্লায়েন্ট পক্ষ থেকে হিসাবে ব্যবহারিক হবে না।
ট্রেভর

2
আপনার ভুতোমজগুলিও দেখে নেওয়া উচিত, যা আপনাকে ভি 8 ইঞ্জিন সহ একটি ব্রাউজার সার্ভার সাইড অনুকরণ করতে দেয়।
দিমিত্রি কোপ্রিভা

2
ক্রোলার তৈরি করার সময় সার্ভার সাইডে ডিডিপারক্স ডিওএম ম্যানিপুলেশন কার্যকর হতে পারে। এই উত্তর দেখুন ।
লুসিও পাইভা

হ্যাঁ - এই উত্তরটির দিকে একবার নজর দিন - আমি jQuery সিলেক্টরের সম্পূর্ণ ক্ষমতা পাওয়ার কারণে আমি চেরিও ব্যবহার করা বেশি পছন্দ করি।
মনিকা মেভেনকম্প

উত্তর:


563

আপডেট (২--জুন -১:) : দেখে মনে হচ্ছে এমন কোনও বড় আপডেট রয়েছে 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

আপডেট (দেরি 2013) : সরকারী jQuery টিম শেষ পর্যন্ত jqueryএনপিএমে প্যাকেজটির পরিচালনা গ্রহণ করেছে :

npm install jquery

তারপর:

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


43
সেই এনপিএম মডিউলের সাথে নোড.জেএস থেকে jQuery আজাক্স ব্যবহার করা কি সম্ভব?
আজসি

22
উইন্ডোজে ইনস্টল করে না ( উল্লেখযোগ্য কাজ ব্যতীত), সেক্ষেত্রে আমি চেরিও
সাইমন ইস্ট

7
যেখানে npm পেতে দেখাচ্ছে জন্য +1 :) অধিকাংশ লোক শুধু কাপড় যেমন যদি এটা একটি প্রদত্ত (সাধারণ জ্ঞান) হওয়া উচিত উল্লেখ একটি খারাপ অভ্যাস আছে
Val,

12
এই ফিরে আসে require("...").env is not a function
বান্দেরি

4
@ বান্দরী আমার সাথে একই, কোন ধারণা? ত্রুটি:TypeError: require(...).env is not a function
কোডারআইরাইন

58

হ্যাঁ আপনি করতে পারেন, আমি তৈরি করেছি এমন একটি লাইব্রেরি যা নোডকুইয়ারি নামে পরিচিত using

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
মনে রাখবেন যে নোডকুইয়ারি আসলে ব্যবহারকারীর পৃষ্ঠাটি রিয়েল টাইমে পরিবর্তন করে, তাই এটি প্রত্যাশার চেয়েও শীতল।
এলেসিয়োএলেক্স

আমি এখানে হোঁচট খেয়ে যখন এই জাতীয় কিছু সন্ধান করছিলাম ... আমি সবেমাত্র এনকোয়ারি এবং জ্যাকারি নোড প্যাকেজগুলির দিকে নজর রেখেছি এবং এনকোয়ারি এক বছর আগে আপডেট হয়েছিল যেখানে জ্যাকুয়ারি গতকাল ছিল ... এনকিউরিটি আর বিকশিত হয় না? এবং jquery ক্লায়েন্টের পক্ষ যেমন nQuery হিসাবে প্রভাবিত করে? কেউ দুজনেই হয়ত চেষ্টা করেছেন?
লোগান

2
@ লোগান এনকোয়ারি মূলত কেবল জ্যাকুইরি। পার্থক্য হ'ল কোডটি সার্ভারে চালিত হয় এবং ব্রাউজারে jquery কোড সরবরাহ করার পরিবর্তে এটি সার্ভারে কোড চালায় এবং সংযুক্ত ব্রাউজারগুলিতে দূরবর্তীভাবে ডোম ম্যানিপুলেশন চালায়। এছাড়াও নোট করুন যে এনকিউরি একটি পরীক্ষামূলক প্রকল্প ছিল এবং আমি বাগগুলি ঠিক করার জন্য টানা অনুরোধগুলি গ্রহণ করব, এটি কোনও নির্দিষ্ট উদ্দেশ্য বা প্রকল্পের জন্য কখনই তৈরি করা হয়নি যাতে এটির অনেক কমিট না হয়
টমাস ব্লাবাম

@ থমাস ব্লোবাম আমার পক্ষে কাজ করছে না, ত্রুটি: , express = Express.createServer();এবং TypeError: Express.createServer is not a functionকোনও ধারণা?
কোডারআইনরাইন

@ থমাস ব্লোবাম দেখে মনে হচ্ছে আপনি এক্সপ্রেসের সর্বশেষতম সংস্করণটি পান নি। npm install --save expressআপনার কমান্ড প্রম্পটে চেষ্টা করুন ।
গিলবার্ট-ভি

55

লেখার সময় সেখানে রক্ষণাবেক্ষণ করা চেরিও রয়েছে

সার্ভারের জন্য বিশেষভাবে ডিজাইন করা কোর jQuery এর দ্রুত, নমনীয় এবং হেলান বাস্তবায়ন।


2
চেরিওর জন্য +1। অন্যদিকে, উইন্ডোজে চালিত হওয়া সত্যিই বেদনাদায়ক s
সাইমন ইস্ট

1
চেরিও কি স্থগিত হওয়া ইভেন্ট এবং এজাক্স কলগুলি ব্যবহার করতে পারে?
হফম্যান

6
:gt(1)
Chovy

1
আমার অভিজ্ঞতায় এটি সবচেয়ে ভাল কাজ করে। এটি জেএসডোমের চেয়ে অনেক দ্রুত।
জেসন প্রন

1
@ হাফম্যান, আমি আপনার জন্য ডকগুলি পরীক্ষা করতে একটি সেকেন্ড ব্যয় করেছি। না, তা হয় না। চেরিওতে কেবল ডোম-সম্পর্কিত পদ্ধতি রয়েছে।
ডেনিস

39

আপনি এখন করতে পারেন jsdom ব্যবহার করে । উদাহরণ ডিরেক্টরিতে কেবল তাদের jquery উদাহরণ দেখুন।


jsdom এর jQueryify () এর এক নিচে দিক এটি হ'ল এটি পৃষ্ঠার সমস্ত স্ক্রিপ্ট চালায়।
30:44 'এ 4

এবং প্রচুর মাথা ব্যথা ছাড়াই এটি উইন্ডোজে কাজ করে না
জেসন গোয়েমাট

1
2016 সালে আপনি jsdom আর প্রয়োজন হবে না - আমার উত্তর দেখুন: stackoverflow.com/a/40656811/3391783
low_rents

34

চেরিও ব্যবহার করে একটি সাধারণ ক্রলার

নোড.জেএস-তে একটি সরল ক্রলার তৈরি করার এটি আমার সূত্র is এটি সার্ভারের পাশে ডিওএম ম্যানিপুলেশন করতে চাওয়ার মূল কারণ এবং সম্ভবত আপনি এখানে আসার কারণ এটি।

প্রথমে 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/');

এই উদাহরণটি এসও হোম পৃষ্ঠায় প্রদর্শিত সমস্ত শীর্ষ প্রশ্নের কনসোলে মুদ্রণ করবে। এই কারণেই আমি নোড.জেএস এবং এর সম্প্রদায়কে ভালবাসি। এটি এর চেয়ে সহজতর হতে পারে না :-)

নির্ভরতা ইনস্টল করুন:

এনপিএম অনুরোধ চিয়ারিও ইনস্টল করুন

এবং চালান (উপরের স্ক্রিপ্টটি ফাইলটিতে রয়েছে ধরে নেওয়া crawler.js):

নোড 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/');

চলমান আগে, নির্ভরতা ইনস্টল করুন:

এনপিএম ইনস্টল অনুরোধ আইকনভিউ-লাইট চিয়ারিও

এবং তারপরে অবশেষে:

নোড crawler.js


নিম্নলিখিত লিঙ্কগুলি

পরবর্তী পদক্ষেপটি লিঙ্কগুলি অনুসরণ করা হবে। বলুন আপনি এসও-তে প্রতিটি শীর্ষ প্রশ্নের সমস্ত পোস্টার তালিকাবদ্ধ করতে চান। আপনাকে প্রথমে সমস্ত শীর্ষ প্রশ্নের তালিকা তৈরি করতে হবে (উপরে উদাহরণস্বরূপ) এবং তারপরে জড়িত ব্যবহারকারীর তালিকা পেতে প্রতিটি লিঙ্ক প্রবেশ করে প্রতিটি প্রশ্নের পৃষ্ঠাগুলি পার্স করে।

আপনি লিঙ্কগুলি অনুসরণ করা শুরু করার পরে, কলব্যাক হেলিক শুরু হতে পারে। তা এড়াতে আপনার কিছু প্রকার প্রতিশ্রুতি, ফিউচার বা যা কিছু ব্যবহার করা উচিত। আমি সবসময় রাখা ASYNC আমার toolbelt হবে। সুতরাং, এখানে অ্যাসিঙ্ক ব্যবহার করে ক্রলারের পুরো উদাহরণটি রয়েছে:

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

দৌড়ানোর আগে:

এনপিএম অনুরোধ async চেরিও ইনস্টল

একটি পরীক্ষা চালান:

নোড crawler.js

নমুনা আউটপুট:

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 সালে জিনিসগুলি সহজ উপায়। আপনার কনসোল দিয়ে node.js এ jquery ইনস্টল করুন:

npm install jquery

$আপনার নোড.জেএস কোডে এটিকে চলকের সাথে আবদ্ধ করুন (উদাহরণস্বরূপ - আমি এটিতে অভ্যস্ত)

var $ = require("jquery");

স্টাফ কর:

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

এটি নলড.জেএস-এর উপর ভিত্তি করে গাল্পের জন্যও কাজ করে


আপনি নোডের কোন সংস্করণ ব্যবহার করছেন? ম্যাকে, নোড 10.১০.২, জ্যাকুয়ারি ২.২.৪, var $ = require("jquery"); $.ajax // undefined (মুহূর্তের জন্য ডাউনভোটেড)।
এজেপি

@ এজেপি এবং আপনি কি নিশ্চিত যে আপনি npm install jqueryপ্রথম করেছেন?
low_rents

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

@ এজেপি ঠিক আছে, এটি আশ্চর্যজনক।
low_rents

আমি ঠিক একইভাবে কারখানার ফাংশনটি পেয়েছি যেমন @ এজেপি করে। আপনি @ কম_রেন্টস, jquery এর কোন সংস্করণ ব্যবহার করেছেন?
বরিস বুর্কভো

18

আমি বিশ্বাস করি এর উত্তর এখন হ্যাঁ।
https://github.com/tmpvar/jsdom

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

9
আমি জানার জন্য দুঃখিত যে এটি jsdm এ jQuery চালানোর জন্য আরও কাজ করতে চলেছে। সিজল তবে কাজ করে! আমি যতটা সম্ভব জেসমডমকে যতটা সম্ভব হালকা রাখতে চাই, তাই এনভ.জেএস এর মতো পূর্ণ ব্রাউজার অনুকরণে যুক্ত করা এই মুহুর্তে আসলেই অগ্রাধিকার নয়।
tmpvar

কিছু মনে করবেন না, আমি jsdom এর সাথে বান্ডিলযুক্ত পরিবর্তিত অনুলিপিটি পেয়েছি।
২৮

এফওয়াইআই নোড-জ্যাকুরিটি এখন জেকুরির পক্ষে হ্রাস করা হয়েছে
রুসলান লোপেজ

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

এই পরিষ্কার উত্তর! অনুগ্রহ এই ভোট দিন
datdinhquoc

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

নোড.জেএস **-এ jQuery এর তথ্যসূত্র:


2
আমার জন্য কাজ করে না ... সি: \ ... ode নোড_মডিউলগুলি qu jquery \ dist \ jquery.js: 31 নতুন ত্রুটি নিক্ষেপ করুন ("jQuery একটি নথির সাথে উইন্ডো প্রয়োজন"); ^ ত্রুটি: jQuery মডিউল.এপোর্টপোর্টে একটি ডকুমেন্ট সহ একটি উইন্ডো প্রয়োজন (সি: \ ... \ ওয়েবকন্টেন্ট \ সংস্থানসমূহ \ জেএস \ নোড_মডিউলস \ জ্যাকুয়ারি ery ডিস্ট \ jquery.js: 31: 12)
হোসে ম্যানুয়েল গোমেজ আলভারেজ

var jsdom = প্রয়োজনীয় ("jsdom"); var উইন্ডো = jsdom.jsdom ()। ডিফল্টভিউ; jsdom.jQueryif (উইন্ডো, "কোড. jquery.com/jquery.js ", ফাংশন () {var $ = উইন্ডো। $; "(" বডি ")। প্রিপেন্ড (" <h1> শিরোনাম </ h1> ") ; কনসোল.লগ ($ ("এইচ 1")। এইচটিএমএল ());});
সূর্যরাজন কে

7

নতুন JSDOM এপিআই ব্যবহার করে আপনাকে উইন্ডোটি পেতে হবে।

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

...HTML5 সমর্থন করার জন্য .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 চালাচ্ছেন, প্রথমত, এনপিএম ইনস্টল ব্যবহার করে jquery এবং jsdom ইনস্টল করুন। তারপরে, আপনি jquery সিলেক্টরটি যে ফাইলটিতে ব্যবহার করার চেষ্টা করছেন সেই ফাইলটিতে উপরের লাইনগুলি যুক্ত করুন For উদাহরণস্বরূপ, আমি একটি ব্যবহার করেছি $.each। আমি এই লাইনগুলি কেবল অন্তর্ভুক্ত করেছি এবং তারপরে নীচের মতো করেছিলাম: $.each(errors, function (ind,error) { res.send(error.msg);console.log(error.msg); }); আশা করি এটি সহায়তা করে !!
প্লাবন দত্ত

কোনওভাবে jsdom একেবারে ইনস্টল না করার সিদ্ধান্ত নিয়েছে। আমার ধারণা আমি এখনও এনপিএম খুঁজে পাচ্ছি। ধন্যবাদ @
নাথান হকস

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 ডি ব্যবহার করার চেষ্টা করেছি, তবে শেষ পর্যন্ত আমি হাল ছেড়ে দিয়েছি। এটি নোডেজ ডিফল্ট দ্বারা সমর্থিত নয় এবং এটি ইনস্টল করা খুব কঠিন (অনেকগুলি ... নির্ভরতা)। যতক্ষণ না আমি ইলেক্ট্রন ব্যবহার করি, আমি সহজেই আমার পূর্ববর্তী সমস্ত ব্রাউজার কোডগুলি, এমনকি ওয়েবজিএল ব্যবহার করতে পারি এবং ফলাফল মানটি (যেমন, ফলাফল বেস 64 চিত্রের ডেটা) নোডজেস কোডটিতে পাস করতে পারি।


-9

আমি যে জানি না। DOM একটি ক্লায়েন্টের পাশের জিনিস (jQuery এইচটিএমএল বিশ্লেষণ করে না, তবে ডিওএম)।

এখানে কিছু বর্তমান নোড.জেএস প্রকল্প রয়েছে:

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

এবং সাইমনডাব্লু এর জাঙ্গোড সুন্দর সুন্দর ...


আমি আশা করি এটা সম্ভব ছিল। আমি ইতিমধ্যে একটি নোড.জেএস প্রকল্পে jquery সহ চেষ্টা করেছি এবং অবশ্যই এটি কার্যকর হয়নি। jQuery নথি / উইন্ডো উপর ভিত্তি করে। রাইনো jQuery সার্ভারের দিক চালনা করতে সক্ষম: ejohn.org/blog/bringing-the- ব্রাউজার- to-the-server আমি আরও পার্সার অনুসন্ধান করতে যাচ্ছি। সম্ভবত এমন একটি আছে যা ব্রাউজারের উপর নির্ভর করে না।
জন

@ জন: এই প্রকল্পটির কারণেই রিকনোতে jQuery চলার একমাত্র কারণ হ'ল github.com/jeresig/env-js/blob/master/src/env.js এটি ডিওএম এবং জাভাস্ক্রিপ্ট রানটাইমের একটি ছোট অংশকে অনুকরণ করে। এটি জাভা এপিআইএসের উপর নির্ভর করে তাই নোড.জেএস (যা ভি 8 / সি ++ ব্যবহার করে) এর জন্য কোনও অগ্রগতি নয়।
ক্রিসেন্ট তাজা

2
@ নসরডেনা যখন আপনি এটি লিখেছেন এটি সত্য হতে পারে, তবে এটি আর স্পষ্টভাবে সত্য নয়। আমি আপনাকে এখনই আপনার উত্তর মুছে ফেলার পরামর্শ দিচ্ছি।
কিথ পিনসন

-18

একটি বিকল্প হ'ল অ্যান্ডস্কোর.জেএস ব্যবহার করা । এটি আপনাকে জিকুয়েরির থেকে সার্ভার-সাইডটি চেয়েছিল তা সরবরাহ করতে হবে।


10
তুমি কি ব্যাখ্যা করতে পারো? jQuery অনেকগুলি ডিওএম ম্যানিপুলেশন / ট্র্যাভারসিং / ফিল্টারিং এপিআই সরবরাহ করে। ইনডস্কোর দেখে মনে হচ্ছে জেনেরিক লাইব্রেরি ইউটিলিটিগুলির সাথে ডিওমের সাথে কোনও সম্পর্ক নেই।
পিটার লিয়নস

1
এখানে একি, আমি দেখতে পাচ্ছি না কীভাবে প্রাসঙ্গিক দুই সম্পূরক সমূহ, বিকল্প নয়
য়ি জিয়াং

2
এই উত্তর সম্পূর্ণ ভুল নয়। jQuery এবং অ্যান্ডস্কোর ওভারল্যাপ করে: তারা উভয়ই forEach এর মতো বৈশিষ্ট্য সরবরাহ করে।
tuomassalo

8
-1 এগুলির ওভারল্যাপিং কার্যকারিতা রয়েছে তবে অ্যান্ডস্কোর কোনও jQuery প্রতিস্থাপন নয়।
স্যাম

2
যদিও ডিওএম ম্যানিপুলেশন / নির্বাচকদের সম্পর্কে প্রশ্ন করা হচ্ছে।
মিকর্ম্কনিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.