Node.js এইচটিটিপি সার্ভারের সাথে একটি একক কুকি পান এবং সেট করুন


159

আমি একটি একক কুকি সেট করতে সক্ষম হতে চাই, এবং নোডেজ সার্ভারের উদাহরণ হিসাবে প্রতিটি অনুরোধের সাথে সেই একক কুকিটি পড়তে পারি। এটি কোনও তৃতীয় পক্ষের লাইব এ টানা প্রয়োজন ছাড়া কোডের কয়েকটি লাইনে করা যায়?

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

কেবল উপরের কোডটি সরাসরি নোডেজএস.আর.গ্রেজে নেওয়ার চেষ্টা করা হচ্ছে এবং এতে একটি কুকি তৈরির চেষ্টা করুন।

উত্তর:


190

কুকিজ পেতে / সেট করতে কোনও দ্রুত ফাংশন অ্যাক্সেস নেই, তাই আমি নিম্নলিখিত হ্যাকটি নিয়ে এসেছি:

var http = require('http');

function parseCookies (request) {
    var list = {},
        rc = request.headers.cookie;

    rc && rc.split(';').forEach(function( cookie ) {
        var parts = cookie.split('=');
        list[parts.shift().trim()] = decodeURI(parts.join('='));
    });

    return list;
}


http.createServer(function (request, response) {

  // To Read a Cookie
  var cookies = parseCookies(request);

  // To Write a Cookie
  response.writeHead(200, {
    'Set-Cookie': 'mycookie=test',
    'Content-Type': 'text/plain'
  });
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

এটি সমস্ত কুকিগুলি কুকিজ অবজেক্টে সংরক্ষণ করবে এবং যখন আপনি মাথা লিখবেন তখন আপনাকে কুকি সেট করতে হবে।


11
উপরের কোডটি ভুলভাবে কাজ করবে যদি কোনও কুকির মানতে =ফেসবুকের কোনও কুকির মতো একটি সমান ( ) চিহ্ন থাকে fbm_1234123412341234=base_domain=.domain.com
চোখ

3
কুকি মানগুলি কি ইউআরএল এনকোড / শতাংশ এনকোড হওয়া উচিত নয়? = ডকির মানটি সেই ক্ষেত্রে অবৈধ হবে, তাই না?
লেস 2

2
যে ক্ষেত্রে অনুসারে বিভক্ত ;প্রথম উদাহরণস্বরূপ দ্বারা তারপর =। বাম কী, ডান মান।
iLoch

4
আমি @Eye হিসাবে একই বিষয়টি দৌড়ে @iLoch আমি রুট যাচ্ছে পরিবর্তে সুইচড parts[0]করতে parts.shift()এবং parts[1]করতেparts.join('=')
aron.duby

3
প্রদত্ত কোডটিতে গুরুতর ত্রুটি ছিল এবং লোকেরা এটি অনুলিপি করার জন্য প্রস্তুত ছিল। আমার শেষ আপডেটটি দেখুন
ড্যান

124

আপনি যদি এক্সপ্রেস গ্রন্থাগারটি ব্যবহার করেন তবে অনেক নোড.জেস বিকাশকারীরা যেমন করেন, তত সহজ উপায় আছে। আরও তথ্যের জন্য এক্সপ্রেস.জেএস ডকুমেন্টেশন পৃষ্ঠাটি দেখুন।

উপরের পার্সিংয়ের উদাহরণটি কাজ করে তবে এক্সপ্রেস আপনাকে এটির যত্ন নেওয়ার জন্য একটি দুর্দান্ত ফাংশন দেয়:

app.use(express.cookieParser());

একটি কুকি সেট করতে:

res.cookie('cookiename', 'cookievalue', { maxAge: 900000, httpOnly: true });

কুকি সাফ করার জন্য:

res.clearCookie('cookiename');

14
কুকি লাইব্রেরি আসলে অন্তর্নিহিত লাইব্রেরি সংযোগ থেকে; কুকি সহায়ক পেতে আপনাকে সমস্ত এক্সপ্রেস নিতে হবে না।
আজাক্স

1
প্রকৃতপক্ষে কুকি লাইব্রেরি সংযোগের অংশ নয় (যা কুকি সেট করতে পারে না)
ফ্রেম্প

10
cookie-parserএক্সপ্রেস এবং / বা সংযোগের আর অংশ নয়, তবে মিডলওয়্যার হিসাবে উপলব্ধ: github.com/expressjs/cookie-parser
কোয়েন।

7
এই উদাহরণে একজন কুকি কীভাবে "পান"? প্রশ্নের সম্পূর্ণতা এবং উত্তর দেওয়ার জন্য।
হুবাতিশ

1
শুধু কুকি ব্যবহার করতে এক্সপ্রেস ইনস্টল করার প্রয়োজনের কারণে ডাউনভোটিং
স্টিভেন

34

এক্সপ্রেসের কুকি পার্সার ব্যবহারের পরামর্শ নিয়ে রেভনোহর সর্বোত্তম উত্তর ছিল । তবে, উত্তরটি এখন 3 বছরের পুরানো এবং পুরানো।

এক্সপ্রেস ব্যবহার করে , আপনি নিম্নলিখিত হিসাবে একটি কুকি পড়তে পারেন

var express = require('express');
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser());
app.get('/myapi', function(req, resp) {
   console.log(req.cookies['Your-Cookie-Name-Here']);
})

এবং উপযুক্তটি package.jsonতুলনামূলকভাবে সর্বশেষতম সংস্করণগুলি প্রতিস্থাপন করে আপনার নিম্নলিখিতটি আপডেট করুন ।

"dependencies": {
    "express": "4.12.3",
    "cookie-parser": "1.4.0"
  },

কুকিজ স্থাপন ও পার্স করার মতো আরও ক্রিয়াকলাপ এখানে এবং এখানে বর্ণিত হয়েছে


8
প্রশ্ন পেতে কিভাবে জিজ্ঞেস এবং সেট। এটি ব্যবহারের জন্য সেট করুন:res.cookie('cookieName', cookieValue, { maxAge: 900000, httpOnly: true });
অগি গার্ডনার 19

আপনি কি প্রতি সেশনে কুকিজ সেট করতে এবং পেতে পারেন (কীগুলি জানার এবং হ্যান্ডেল করার প্রয়োজনীয়তার সাথে)?
মতেজ জে

12

@ কোরি হার্টের উত্তরের বর্ধন হিসাবে, আমি ব্যবহারগুলি আবার লিখেছি parseCookies():

  • RegExp.prototype.exec - "নাম = মান" স্ট্রিংগুলি পার্স করতে regex ব্যবহার করুন

কাজের উদাহরণ এখানে:

let http = require('http');

function parseCookies(str) {
  let rx = /([^;=\s]*)=([^;]*)/g;
  let obj = { };
  for ( let m ; m = rx.exec(str) ; )
    obj[ m[1] ] = decodeURIComponent( m[2] );
  return obj;
}

function stringifyCookies(cookies) {
  return Object.entries( cookies )
    .map( ([k,v]) => k + '=' + encodeURIComponent(v) )
    .join( '; ');
}

http.createServer(function ( request, response ) {
  let cookies = parseCookies( request.headers.cookie );
  console.log( 'Input cookies: ', cookies );
  cookies.search = 'google';
  if ( cookies.counter )
    cookies.counter++;
  else
    cookies.counter = 1;
  console.log( 'Output cookies: ', cookies );
  response.writeHead( 200, {
    'Set-Cookie': stringifyCookies(cookies),
    'Content-Type': 'text/plain'
  } );
  response.end('Hello World\n');
} ).listen(1234);

আমি আরও নোট করি যে ওপিটি http মডিউলটি ব্যবহার করে। যদি ওপি পুনঃসমাধান ব্যবহার করে , তবে তিনি পুনরায় আকার-কুকিজ ব্যবহার করতে পারেন :

var CookieParser = require('restify-cookies');
var Restify = require('restify');
var server = Restify.createServer();
server.use(CookieParser.parse);
server.get('/', function(req, res, next){
  var cookies = req.cookies; // Gets read-only cookies from the request
  res.setCookie('my-new-cookie', 'Hi There'); // Adds a new cookie to the response
  res.send(JSON.stringify(cookies));
});
server.listen(8080);

1
ভবিষ্যতের দর্শকদের জন্য এখন থেকে 3.5 বছর পরে কিছু পরামর্শ। সেইভাবে অ্যারে তৈরি করার পরিবর্তে ব্যবহার করুন let/constএবং তার stringifyCookiesসাথে একরেখায় তৈরি করা যেতে পারে map
Ascherer

10

আপনি "কুকিজ" এনপিএম মডিউলটি ব্যবহার করতে পারেন, যার বৈশিষ্ট্যগুলির একটি বিস্তৃত সেট রয়েছে।

ডকুমেন্টেশন এবং উদাহরণগুলি:
https://github.com/jed/cookies


1
দেখে মনে হচ্ছে যে মডিউলটি HTTP সার্ভারগুলিতে ব্যবহারের উদ্দেশ্যে। এইচটিপি ক্লায়েন্টগুলিতে কুকিজ পরিচালনা করার জন্য কি কোনও কুকিজার সরঞ্জাম আছে? মূলত আমি HTTP ক্লায়েন্টের lib বলতে আগ্রহী: আপনি যদি কোনও সেট-কুকি শিরোনাম পান তবে সেগুলি স্বয়ংক্রিয়ভাবে স্মরণ করুন এবং তারপরে পরবর্তী আউটবাউন্ড অনুরোধগুলি যথাযথভাবে পাস করুন (যখন ডোমেনটি মেলে)।
চিজো

এটি আপনার পছন্দের HTTP ক্লায়েন্টের বৈশিষ্ট্য হবে। আমি পরামর্শ দিতে পারেন superagent একটি ভাল উদাহরণ হিসাবে।
zah

এই লিবটি কয়েক ঘন্টার পরে এক্সপ্রেসে কাজ করার চেষ্টা করার চেষ্টা চালিয়ে গিয়েছে ... পরিবর্তে সংযোগটি ব্যবহার করুন।
এনকো

7

কুকির মানগুলিতে '=' থাকা কুকিগুলির সাথে কাজ করার জন্য একটি কুকি বিভাজন পেতে:

var get_cookies = function(request) {
  var cookies = {};
  request.headers && request.headers.cookie.split(';').forEach(function(cookie) {
    var parts = cookie.match(/(.*?)=(.*)$/)
    cookies[ parts[1].trim() ] = (parts[2] || '').trim();
  });
  return cookies;
};

তারপরে স্বতন্ত্র কুকি পেতে:

get_cookies(request)['my_cookie']

6

এইচটিটিপি
-শিরোনামগুলির মাধ্যমে কুকিজ স্থানান্তরিত হয় আপনার কেবলমাত্র অনুরোধ-শিরোনামকে বিশ্লেষণ করতে হবে এবং প্রতিক্রিয়া-শিরোনাম রাখতে হবে।


উইকিপিডিয়া সহজ নয়
হোস বুধবার

2

নোডে কুকিজ পরিচালনার জন্য এখানে একটি ঝরঝরে অনুলিপি-এন-পেস্ট প্যাচ। আমি কফিস্ক্রিপ্টে এটি করব, সৌন্দর্যের জন্য।

http = require 'http'

http.IncomingMessage::getCookie = (name) ->
  cookies = {}
  this.headers.cookie && this.headers.cookie.split(';').forEach (cookie) ->
    parts = cookie.split '='
    cookies[parts[0].trim()] = (parts[1] || '').trim()
    return

  return cookies[name] || null

http.IncomingMessage::getCookies = ->
  cookies = {}
  this.headers.cookie && this.headers.cookie.split(';').forEach (cookie) ->
    parts = cookie.split '='
    cookies[parts[0].trim()] = (parts[1] || '').trim()
    return

  return cookies

http.OutgoingMessage::setCookie = (name, value, exdays, domain, path) ->
  cookies = this.getHeader 'Set-Cookie'
  if typeof cookies isnt 'object'
    cookies = []

  exdate = new Date()
  exdate.setDate(exdate.getDate() + exdays);
  cookieText = name+'='+value+';expires='+exdate.toUTCString()+';'
  if domain
    cookieText += 'domain='+domain+';'
  if path
    cookieText += 'path='+path+';'

  cookies.push cookieText
  this.setHeader 'Set-Cookie', cookies
  return

আপনি এখন যেমন আশা করেছিলেন কুকিগুলি পরিচালনা করতে সক্ষম হবেন:

server = http.createServer (request, response) ->
  #get individually
  cookieValue = request.getCookie 'testCookie'
  console.log 'testCookie\'s value is '+cookieValue

  #get altogether
  allCookies = request.getCookies()
  console.log allCookies

  #set
  response.setCookie 'newCookie', 'cookieValue', 30

  response.end 'I luvs da cookies';
  return

server.listen 8080

3
শুধু চেষ্টা COFFESCRIPT ট্যাবে যে কোড পেস্ট করুন কপি coffeescript.org । আপনার উত্তরটি আমাকে সহায়তা করেছিল, এবং জাভাস্ক্রিপ্টটি জানলে কোফিসিপিটি পড়া এত কঠিন নয়।
ম্যাটিজস

1

আমি প্রশ্নের এই অংশটির পুনরাবৃত্তি করি যা এখানে উত্তরগুলি উপেক্ষা করছে:

এটি কোনও তৃতীয় পক্ষের লাইব এ টানা প্রয়োজন ছাড়া কোডের কয়েকটি লাইনে করা যায়?


কুকিজ পড়া

Cookieশিরোনাম সহ অনুরোধগুলি থেকে কুকিজগুলি পড়া হয় । তারা শুধুমাত্র একটি nameএবং অন্তর্ভুক্ত value। পথগুলি যেভাবে কাজ করে সে কারণে একই নামের একাধিক কুকি পাঠানো যেতে পারে। নোডজেএস-এ, সমস্ত কুকিজকে একটি স্ট্রিং হিসাবে Cookieশিরোনামে প্রেরণ করা হয় । আপনি তাদের সাথে বিভক্ত ;। একবার আপনার কুকি হয়ে গেলে সমান বামের সমস্ত কিছু (উপস্থিত থাকলে) nameএবং তার পরের সমস্ত কিছু value। কিছু ব্রাউজার সমান চিহ্ন সহ একটি কুকি গ্রহণ করবে এবং নামটি ফাঁকা বলে ধরে নেবে। হোয়াইট স্পেসগুলি কুকির অংশ হিসাবে গণনা করা হয় না। মানগুলিও ডাবল উদ্ধৃতিতে আবৃত হতে পারে ( ")। মানগুলিও ধারণ করতে পারে =। উদাহরণস্বরূপ, formula=5+3=8একটি বৈধ কুকি।

/**
 * @param {string} [cookieString='']
 * @return {[string,string][]} String Tuple
 */
function getEntriesFromCookie(cookieString = '') {
  return cookieString.split(';').map((pair) => {
    const indexOfEquals = pair.indexOf('=');
    let name;
    let value;
    if (indexOfEquals === -1) {
      name = '';
      value = pair.trim();
    } else {
      name = pair.substr(0, indexOfEquals).trim();
      value = pair.substr(indexOfEquals + 1).trim();
    }
    const firstQuote = value.indexOf('"');
    const lastQuote = value.lastIndexOf('"');
    if (firstQuote !== -1 && lastQuote !== -1) {
      value = value.substring(firstQuote + 1, lastQuote);
    }
    return [name, value];
  });
}

const cookieEntries = getEntriesFromCookie(request.headers.Cookie); 
const object = Object.fromEntries(cookieEntries.slice().reverse());

যদি আপনি সদৃশ নামগুলির প্রত্যাশা না করেন তবে আপনি এমন কোনও জিনিসে রূপান্তর করতে পারেন যা জিনিসগুলিকে সহজ করে তোলে। তারপরে আপনি object.myCookieNameমানটি পেতে চাইলে অ্যাক্সেস করতে পারেন । যদি আপনি সদৃশ প্রত্যাশা করে থাকেন তবে আপনি এর মাধ্যমে পুনরাবৃত্তি করতে চান cookieEntries। ব্রাউজারগুলি কুকিজকে অবতরণ অগ্রাধিকারে খাওয়ায়, তাই বিপরীতগুলি নিশ্চিত করে যে সর্বোচ্চ অগ্রাধিকার কুকিটি অবজেক্টে উপস্থিত হবে। ( .slice()অ্যারের রূপান্তর এড়াতে হবে।)


সেটিংস কুকি

" Set-Cookieপ্রতিক্রিয়া " কুকিজ আপনার প্রতিক্রিয়া শিরোনাম ব্যবহার করে সম্পন্ন হয় । response.headers['Set-Cookie']বস্তু আসলে একটি অ্যারের, তাই আপনি এটি ঠেলাঠেলি করা হবে। এটি একটি স্ট্রিং গ্রহণ করে তবে এতে কেবল nameএবং এর চেয়ে বেশি মান রয়েছে value। সবচেয়ে শক্ত অংশটি স্ট্রিং লিখছে তবে এটি একটি লাইনে করা যেতে পারে।

/**
 * @param {Object} options
 * @param {string} [options.name='']
 * @param {string} [options.value='']
 * @param {Date} [options.expires]
 * @param {number} [options.maxAge]
 * @param {string} [options.domain]
 * @param {string} [options.path]
 * @param {boolean} [options.secure]
 * @param {boolean} [options.httpOnly]
 * @param {'Strict'|'Lax'|'None'} [options.sameSite]
 * @return {string}
 */
function createSetCookie(options) {
  return (`${options.name || ''}=${options.value || ''}`)
    + (options.expires != null ? `; Expires=${options.expires.toUTCString()}` : '')
    + (options.maxAge != null ? `; Max-Age=${options.maxAge}` : '')
    + (options.domain != null ? `; Domain=${options.domain}` : '')
    + (options.path != null ? `; Path=${options.path}` : '')
    + (options.secure ? '; Secure' : '')
    + (options.httpOnly ? '; HttpOnly' : '')
    + (options.sameSite != null ? `; SameSite=${options.sameSite}` : '');
}

const newCookie = createSetCookie({
  name: 'cookieName',
  value: 'cookieValue',
  path:'/',
});
response.headers['Set-Cookie'].push(newCookie);

মনে রাখবেন আপনি একাধিক কুকি সেট করতে পারেন, কারণ আপনি Set-Cookieআপনার অনুরোধে বাস্তবে একাধিক শিরোনাম সেট করতে পারেন । এ কারণেই এটি একটি অ্যারে।


বাহ্যিক গ্রন্থাগারে নোট:

আপনি ব্যবহার করতে সিদ্ধান্ত নেন তাহলে express, cookie-parserঅথবা cookie, নোট তারা অক্ষমতা যে অ-মানক আছে। পার্স করা কুকিগুলি সর্বদা ইউআরআই ডিকোড (শতাংশ-ডিকোডড) থাকে। এর অর্থ হল আপনি যদি এমন কোনও নাম বা মান ব্যবহার করেন যা নিম্নলিখিত বর্ণগুলির একটি রয়েছে: !#$%&'()*+/:<=>?@[]^`{|}সেগুলি লাইব্রেরির সাহায্যে আলাদাভাবে পরিচালনা করা হবে। আপনি যদি কুকি সেট করে থাকেন তবে সেগুলি এনকোডযুক্ত %{HEX}। এবং আপনি যদি একটি কুকি পড়ছেন তবে আপনাকে সেগুলি ডিকোড করতে হবে।

উদাহরণস্বরূপ, যখন email=name@domain.comএকটি বৈধ কুকি, এই লাইব্রেরি এটি হিসাবে এনকোড হবে email=name%40domain.com। আপনি যদি %নিজের কুকিতে এটি ব্যবহার করে থাকেন তবে ডিকোডিং সমস্যাগুলি প্রদর্শন করতে পারে । এটা ম্যাঙ্গাল হয়ে যাবে। উদাহরণস্বরূপ, আপনার কুকিটি ছিল: secretagentlevel=50%007and50%006হয়ে যায় secretagentlevel=507and506। এটি একটি প্রান্তের কেস, তবে লাইব্রেরিগুলি স্যুইচ করা থাকলে লক্ষ্য করার মতো কিছু।

এছাড়াও, এই লাইব্রেরিতে, কুকিগুলি একটি ডিফল্ট দিয়ে সেট করা হয় path=/যার অর্থ তারা হোস্টকে প্রতিটি url অনুরোধে প্রেরণ করা হয়।

আপনি যদি এই মানগুলি নিজেই এনকোড বা ডিকোড করতে চান তবে আপনি যথাক্রমে encodeURIComponentবা ব্যবহার করতে পারেন decodeURIComponent


তথ্যসূত্র:


অতিরিক্ত তথ্য:


0

প্রথমে কুকি তৈরি করতে হবে (উদাহরণ হিসাবে আমি কুকির অভ্যন্তরে টোকেনটি আবৃত করেছি) এবং তারপরে এটি প্রতিক্রিয়াতে সেট করব following কুকি নিম্নলিখিত পদ্ধতিতে ব্যবহার করতে কুকি পার্সার ইনস্টল করুন

app.use(cookieParser());

ব্রাউজারটি এটির 'রিসোর্স' ট্যাবে সংরক্ষণ করবে এবং এরপরে প্রাথমিক ইউআরএলটিকে ভিত্তি হিসাবে গ্রহণের পরে প্রতিটি অনুরোধের জন্য ব্যবহার করা হবে

var token = student.generateToken('authentication');
        res.cookie('token', token, {
            expires: new Date(Date.now() + 9999999),
            httpOnly: false
        }).status(200).send();

সার্ভার সাইডে একটি অনুরোধ থেকে কুকি পাওয়া খুব সহজ You আপনি অনুরোধের বিষয়টির 'কুকি' সম্পত্তি কল করে অনুরোধ থেকে কুকিটি বের করতে হবে।

var token = req.cookies.token; // Retrieving Token stored in cookies

0

যদি আপনার কীসের মধ্যে যত্ন নেই cookieএবং আপনি কেবল এটি ব্যবহার করতে চান তবে এই পরিষ্কার পদ্ধতির চেষ্টা করুন request(একটি জনপ্রিয় নোড মডিউল):

var request = require('request');
var j = request.jar();
var request = request.defaults({jar:j});
request('http://www.google.com', function () {
  request('http://images.google.com', function (error, response, body){
     // this request will will have the cookie which first request received
     // do stuff
  });
});

দুঃখিত, তবে এই কোডটি আমার কাছে মোটেই অর্থবোধ করে না। jar()কুকিজের বর্তমান তালিকা পেতে কি কিছু সিটসি পদ্ধতির নাম? অনুরোধের 2 অনুরোধের বিন্দুটি কী? এটি বেশিরভাগই একটি বিজ্ঞাপন, কোনও উত্তর নয়।
ব্যবহারকারী 1944491

0
var cookie = 'your_cookie';
var cookie_value;
var i = request.headers.indexOf(cookie+'=');
if (i != -1) {
  var eq = i+cookie.length+1;
  var end = request.headers.indexOf(';', eq);
  cookie_value = request.headers.substring(eq, end == -1 ? undefined : end);
}

0

কিছু ES5 / 6 জাদু এবং RegEx ম্যাজিক ব্যবহার

কুকিগুলি পড়তে এবং তাদের কী-এর কোনও বস্তুতে পরিণত করার জন্য এখানে বিকল্প রয়েছে, ক্লায়েন্টের পক্ষে মূল্য জোড়া, এটি সার্ভারের পাশও ব্যবহার করতে পারে।

দ্রষ্টব্য : মানটিতে যদি কোনও থাকে তবে =কোনও উদ্বেগ নেই। যদি =কী থাকে তবে জান্নাতে ঝামেলা।

আরও নোট : কিছু পড়ার পক্ষে তর্ক করতে পারে তাই এটি আপনার পছন্দ মতো ভেঙে দিন।

আমি পছন্দ করি নোটস : একটি ত্রুটি হ্যান্ডলার যুক্ত করা (ধরা চেষ্টা করুন) ক্ষতি করবে না।

const iLikeCookies = () => {
    return Object.fromEntries(document.cookie.split('; ').map(v => v.split(/=(.+)/))); 
}

const main = () => {
    // Add Test Cookies
    document.cookie = `name=Cookie Monster;expires=false;domain=localhost`
    document.cookie = `likesCookies=yes=withARandomEquals;expires=false;domain=localhost`;

    // Show the Objects
    console.log(document.cookie)
    console.log('The Object:', iLikeCookies())

    // Get a value from key
    console.log(`Username: ${iLikeCookies().name}`)
    console.log(`Enjoys Cookies: ${iLikeCookies().likesCookies}`)
}

এখানে চিত্র বর্ণনা লিখুন

কি হচ্ছে?

iLikeCookies();( স্থান পরে; ) দ্বারা কুকিগুলিকে বিভক্ত করবে :

["name=Cookie Monster", "likesCookies=yes=withARandomEquals"]

তারপরে আমরা সেই অ্যারে ম্যাপ করি এবং রেগেক্স ক্যাপচারিং প্যারেন্স= ব্যবহারের প্রথম সংঘটন দ্বারা বিভক্ত :

[["name", "Cookie Monster"], ["likesCookies", "yes=withARandomEquals"]]

তারপরে এটিকে কী, ভ্যাল জোড়াগুলির একটি অবজেক্ট তৈরি করতে আমাদের বন্ধু `অবজেক্ট.ফ্রমেট্রিজ ব্যবহার করুন।

Nooice।


0

আমি এই সহজ ফাংশনটি লিখেছি শুধু পাস req.headers.cookieএবং কুকির নাম

const getCookieByName =(cookies,name)=>{
    const arrOfCookies = cookies.split(' ')
    let yourCookie = null

    arrOfCookies.forEach(element => {
        if(element.includes(name)){
            yourCookie = element.replace(name+'=','')
        }
    });
    return yourCookie
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.