Tamim Fahed نشر 18 يوليو 2021 أرسل تقرير نشر 18 يوليو 2021 أحاول استخدام ملفات تعريف الارتباط من خلال express في node.js ولكن لا يتم إضافتها بشكل صحيح، وهذا هو الكود: var express = require('express'), http = require('http'); var app = express(); app.configure(function(){ app.use(express.cookieParser()); app.use(express.static(__dirname + '/public')); app.use(function (req, res) { var value_random=Math.random().toString(); value_random=value_random.substring(2,value_random.length); res.cookie('cokkieName',value_random, { maxAge: 900000, httpOnly: true }) console.log('test cookie created'); }); }); var server = http.createServer(app); server.listen(5555); كيف يمكنني حل المشكلة؟ 1 اقتباس
1 Sam Ahw نشر 18 يوليو 2021 أرسل تقرير نشر 18 يوليو 2021 إن ترتيب استخدام الوسطاء middlewares في node.js مهم ويحدث فرق في تنفيذ الكود البرمجي. والوسيط الذي يتم التصريح عنه أولاً سيتم استدعائه أولاً، وفي حال كان بإمكانه استقبال الطلب، لن يتم استدعاء أي وسيط آخر تم تعريفه بعده. وفي الكود لديك، قمت بوضع express.static أولاً، وبالتالي هو من سيقوم باستقبال الطلب. لذلك يجب عليك إعادة ترتيب الكود لديك ليصبح بالشكل التالي: app.use(express.cookieParser()); app.use(function (req, res, next) { var cookie = req.cookies.cookieName; if (cookie === undefined) { var value_random=Math.random().toString(); value_random=value_random.substring(2,value_random.length); res.cookie('cookieName',value_random, { maxAge: 900000, httpOnly: true }); console.log('test cookie created'); } else { console.log('لقد تم تعريفها مسبقاً', cookie); } next(); }); app.use(express.static(__dirname + '/public')); ومع النسخ الحديثة من express تم فصل التعامل مع ملفات تعريف الارتباط، فيمكنك بدلاً من: app.use(express.cookieParser()); يجب عليك تحميل المكتبة بشكل منفصل من خلال: npm i cookie-parser ثم استخدامها بالشكل التالي: const cookieParser = require('cookie-parser'); app.use(cookieParser()); 1 اقتباس
0 Salah Eddin Beriani2 نشر 18 يوليو 2021 أرسل تقرير نشر 18 يوليو 2021 هذه الشيفرة يمكنها العمل بدون مشاكل لكن في حالة ما كنت تستخدم نسخة express 2 وهي قديمة لذا تحقق أي نسخة من express انت تستخدم بالنسبة ل النسخة 4 يمكنك استخدام var express = require('express'); var cookieParser = require('cookie-parser'); var app = express(); app.use(cookieParser()); app.use(express.static(__dirname + '/public')); app.get('/', function (req, res) { // Cookies that have not been signed console.log('Cookies: ', req.cookies); // Cookies that have been signed console.log('Signed Cookies: ', req.signedCookies); }); app.listen(8080); اقتباس
-1 عبدالله أحمد4 نشر 18 يوليو 2021 أرسل تقرير نشر 18 يوليو 2021 (معدل) إذا كنت تستعمل Express v4، لتفعيل الكوكيز يتم تنصيب الحزمة cookie-parser، من الأمر التالي: npm i cookie-parser ثم استخدامها في ملف السرفر كالتالي var express = require('express') var cookieParser = require('cookie-parser') var app = express() app.use(cookieParser()) اذا أردت عمل Middleware يقوم بعمل كوكي ويضع في قيمتها رقم عشوائي (كما بالكود عندك) app.use(cookieParser()); // يجب أن تستدعيها قبل استخدام الكوكيز app.use(function (req, res, next) { var value_random = Math.random().toString(); value_random=value_random.substring(2,value_random.length); res.cookie('cokkieName',value_random, { maxAge: 900000, httpOnly: true }) console.log('test cookie created'); next(); }); تم التعديل في 18 يوليو 2021 بواسطة عبدالله أحمد4 اقتباس
السؤال
Tamim Fahed
أحاول استخدام ملفات تعريف الارتباط من خلال express في node.js ولكن لا يتم إضافتها بشكل صحيح، وهذا هو الكود:
var express = require('express'), http = require('http'); var app = express(); app.configure(function(){ app.use(express.cookieParser()); app.use(express.static(__dirname + '/public')); app.use(function (req, res) { var value_random=Math.random().toString(); value_random=value_random.substring(2,value_random.length); res.cookie('cokkieName',value_random, { maxAge: 900000, httpOnly: true }) console.log('test cookie created'); }); }); var server = http.createServer(app); server.listen(5555);
كيف يمكنني حل المشكلة؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.