اذهب إلى المحتوى

Tamim Fahed

الأعضاء
  • المساهمات

    124
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو Tamim Fahed

  1. لدي مشروع قديم مبني سابقاً باستخدام express في node.js ووجدت السطر التالي الذي يقوم بوضع الأيقونة في المتصفح: app.use(express.favicon()); كيف يمكنني تعديل هذه الأيقونة الافتراضية في النسخة الحديثة من express ؟
  2. أحاول استخدام ملفات تعريف الارتباط من خلال 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. لدي بعض العمليات التي يتم تطبيقها في كل وسيط middleware بشكل منفصل على الآخر، ولدي مسار يحوي أكثر من وسيط بحيث سيتم الدخول على كل منها بشكل متسلسل لإجراء بعض العمليات وتمرير النتيجة إلى الوسيط التالي وهكذا، مثال: router.get('/clients', [middleware1, middleware2], controller.doWork) وأقوم بوضع التابع next في هذه الوسطاء للمتابعة أو للإيقاف، ولكن كيف يمكنني تمرير القيم أو المتغيرات بين هذه الوسطاء من خلال express ؟
  4. لدي الكود التالي من طرف خادم الويب node.js وأقوم باستخدام express.js: var express = require('express') var bodyParser = require('body-parser') var app = express() app.use(bodyParser.urlencoded()) app.use(bodyParser.json()) app.listen(5000); app.post("/", function (req, res) { console.log(req.body) res.send('Hello World!') }); ولكن أحصل على body فارغ عند طباعته في console.log. كيف يمكنني حل هذه المشكلة؟
  5. بفرض لدي المسار التالي لطلب بعض المعلومات من خادم الويب: http://mywebsite.com/test/test2 وأرغب بالحصول على هذا المسار كاملاً فقمت بوضع مسار التوجيه هذا ضمن express: app.get('/test/test2', function (req, res) { let url = req.url; } ولكنني أحصل فقط على /test و /test2 بشكل معزول. كيف يمكنني الحصول على كامل المسار الذي تم طلبه من قبل العميل؟
  6. لدي تطبيق node.js على خادم ويب VPS بنظام تشغيل ubuntu، ويتم تخديم الموقع من خلال nginx بشكل reserved proxy. والآن أحاول تحويل الاتصال إلى https، فهل يجب إضافة الشهادة على خادم الويب وتعديل إعدادات nginx فقط؟ أم هل هنالك أيضاً تعديلات يجب إجرائها على الكود البرمجي في express.js؟ لأنني لاحظت وجود كل من http و https أثناء تشغيل الخادم: var http = require('http'); var https = require('https'); فهل يجب علي إجراء هذه التعديلات أم يكفي إضافة الشهادة على الخادم وتحويل النطاق إلى https؟
  7. قمت بإضافة express.js من جهة الخادم node.js ولاحظت وجود طريقتين للتضمين ضمن الكود: var express = require('express'); var app = express(); app.listen(3000); والشكل التالي: var express = require('express'); var http = require('http'); var app = express(); var server = http.createServer(app); server.listen(3000); ما الفرق بين هذه الطرق؟ وهل يجب استخدام إحداها أفضل من الأخرى؟
  8. لدي مجموعة كبيرة من المستندات المتداخلة بحيث كل مستند يحوي بداخله عدّة مستندات أخرى nested. وأحاول الحصول على المستند الأكبر حجماً في هذه المجموعة. من التوثيق وجدت الدالة التالية: db.collection.stats() والتي تعطي متوسط الحجم، ولكن أرغب بالحصول على الحجم الأكبر ضمن هذه المجموعة وليس المتوسط. كيف يمكنني تحقيق ذلك؟
  9. استخدم mongoose في node.js، وضمن هيكلية البيانات نسيت تعريف الحقول timestamps، ولكن حسب التوثيق الرسمي وجدت أن الحقل المعرّف الفريد لكل مستند id يحوي بداخله قيمة الوقت والتاريخ لإنشاء كل مستند. ولكن كيف يمكنني استخراج هذه القيم من ObjectID في mogoose. وإجراء استعلام عليها بشكل مشابه للتالي: collection.find({date: {$gt: new Date(2021,1,1)}});
  10. لدي مجموعة من المستندات وأحاول الحصول على مجموع عناصر مصفوفة بهيئة حقل جديد بشكل مشابه للتالي: { "department": 1, "Count employees" : {$size : "$employees" } } ولكن يظهر لي الخطأ التالي: The argument to $size must be an Array, but was of type: EOO فهل يوجد طريقة لوضع القيمة 0 في حال كان العنصر فارغاً وتجاهل الخطأ السابق؟
  11. أحاول تطبيق OOP - Object Oriented Programming ضمن كود المشروع في node.js، ولكن هل يجب أن تتم تجزأة جميع الصفوف ضمن module.export ؟ وحاولت إنشاء الصفوف بالشكل التالي: this.Class = function() { var name = "" this.username = "" var getName = function() {} this.getName = function() {} } لكن واجهت العديد من الأخطاء بهذه المنهجية. فما هي الطريقة الصحيحة لإنشاء الصفوف واتباع OOP ضمن node.js؟ وهل هي مدعومة بشكل تلقائي ضمن node.js ؟
  12. أقوم باستخدام Express في node.js وقمت بإنشاء وسيط قبل تنفيذ تابع معيّن بالشكل التالي: app.get('/admins', Role, function(req,res){ ... }) ولكن هل من الممكن تمرير متغيّرات ضمن هذا الوسيط Role؟ بحيث تكون هذه المتغيرات من الطلب request نفسه؟
  13. لدي عدد كبير من المستندات ضمن مجموعة (users) بهذا الشكل: { date: '2020-12-12', username: 'test1', email: 'test@test.com' } .... كيف يمكنني إخراج مجموعة من هؤلاء المستخدمين (السجلات) إلى collection أخرى ضمن نفس قاعدة البيانات؟
  14. باستخدام الأوامر على المجموعة كـ bulk في mongodb لاحظت وجود تابعين متشابهين هما: updateOne , replaceOne. ولكن حسب التوثيق كل منهما يقوم بتعديل المستندات التي يتم الاستعلام عنها بنفس الطريقة. هل من الممكن أن يكون updateOne شاملاً أكثر بحيث يمكنني استخدامه دائماً بدلاً من replaceOne ؟ أو ما الفرق تحديداً بين كل منهما ومتى يجب استخدام كل واحدة؟
  15. قمت بتحميل mongodb على الخادم بنظام CentOS وقمت بإنشاء الإعدادات ضمن ملف mongod.conf كالتالي: logpath=/var/log/mongo/mongod.log port=27017 dbpath=/var/lib/mongo وقمت بتشغيلها من خلال الأوامر: service mongod start mongo لكن بعد بضعة أيام ظهر الخطأ التالي: [initandlisten] ERROR: Insufficient free space for journal files [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles [initandlisten] [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating dbexit: [initandlisten] shutdown: going to close listening sockets... [initandlisten] shutdown: going to flush diaglog... [initandlisten] shutdown: going to close sockets... [initandlisten] shutdown: waiting for fs preallocator... [initandlisten] shutdown: lock for final commit... [initandlisten] shutdown: final commit... [initandlisten] shutdown: closing all files... [initandlisten] closeAllFiles() finished [initandlisten] journalCleanup... [initandlisten] removeJournalFiles [initandlisten] shutdown: removing fs lock... dbexit: really exiting now ثم عندما أقوم بتنفيذ الأمر التالي: service mongod status تظهر هذه الرسالة: mongod dead but subsys locked كيف يمكنني معالجة مشاكل mongod dead but subsys locked و Insufficient free space for journals, terminating ؟
  16. لقد قرأت التوثيق الرسمي في node.js وطبقّت جميع الأوامر على الملفات من خلال المكتبة fs. لكنني لم أجد تابع ضمن هذه المكتبة لنقل الملفات. كيف يمكنني أن أنقل ملف من مكان لآخر ضمن نفس المجلّد أو ضمن مجلّد آخر في node.js ؟
  17. لقد قمت بتحميل npm على خادم الويب، ولكن عندما أقوم بتنفيذ الأمر التالي: sudo npm install يظهر لدي هذا الخطأ: npm ERR! code EINTEGRITY npm ERR! sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== integrity checksum failed when using sha512: wanted sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== but got sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==. (65117 bytes) npm ERR! A complete log of this run can be found in: npm ERR! /home/ubuntu/.npm/_logs/2017-11-29T05_33_52_182Z-debug.log حاولت إزالة الملف package-lock.json ولكن بقيت نفس المشكلة. كيف يمكنني حل هذا الخطأ؟
  18. لدي ملف جافاسكريبت يحوي بداخله بعض الأوامر، بحيث أقوم بتشغيله مع mongo من خلال الأمر التالي: mongo variablesfile.js ولكن كيف يمكنني أيضاً تمرير قيم متغيّرة أثناء التشغيل، مثلاً: mongo variablesfile.js var1 بحيث يقوم الملف variablesfile.js بأخذ قيمة المتغيّر var1 وتنفيذ الكود عليها: print(var1); أي كيف يمكنني تمرير القيم المتغيرة ضمن الأمر mongo variablesfile.js؟
  19. أقوم بتنفيذ الأمر التالي لتشغيل الحاوية: sudo docker run -i -t -p 28000:27017 mongo:latest /usr/bin/mongod ولكن أرغب بتشغيل محرر الأوامر ل mongodb وكتابة الاستعلامات. كيف يمكنني فتح المحرر داخل الحاوية؟
  20. لدي مجموعة من المستندات بالهيئة التالية: { 'users' : [ { 'username' : 'user1', 'value' : 5 }, { 'username' : 'user2', 'value' : 10 }, { 'username' : 'user3', 'value' : 2 } ] } وأرغب بإضافة عنصر جديد إلى المصفوفة users فقط في حال لم يكن الاسم username موجوداً، أي بغض النظر عن قيمة الحقل value. فهل من الممكن تحقيق ذلك باستخدام addToSet أم يجب علي إضافة أمر آخر إلى الاستعلام؟
  21. يتم استخدام كل من sharding و replication مع قواعد بيانات mongodb بشكل مشابه وخاصةً عند التعامل مع المشاريع الكبيرة والموزعة. ولكن ماهو الاختلاف بين كل منهما؟ فعد استخدامي لأدوات التجزئة وجدتها أسهل وأقل تعقيداً من replication، فهل يمكنني استخدامها دوماً بدلاً من replication؟
  22. لقد وجدت طريقتين في إرسال الرد response إلى الزبون من قبل خادم node.js وهما: res.send(); و res.end(); ما الفرق بين هذه الطريقتين ومتى يتم استخدام كل منها في node.js ؟
  23. لقد قمت باستخدام المكتبة multer للتعامل مع الملفات والصور في مشروع node.js ونجحت بالفعل في رفع هذه الملفات إلى الخادم من خلال الكود التالي: app.post("/images/upload", [upload.single('upload')], controller.uploadImage); exports.uploadImage = async (req, res) => { ... //يتم هنا حفظ اسم الملف والمسار في قاعدة البيانات ... } ولكن سؤالي هو كيف يمكنني إظهار نسبة التحميل (نسبة مئوية مثلاً) إلى المستخدم؟ ففي حالة الملفات الكبيرة لم أعد أستطع تحديد الوقت المتبقي لاكتمال عملية رفع الملف.
  24. لقد لاحظت في العديد من المشاريع كتابة الجملة "use strict" في أول ملفات الجافاسكريبت التابعة ل node.js ما الذي تقوم به هذه الجملة بالتحديد؟ وهل يمكن وضعها في أماكن أخرى غير السطر الأول من ملف الجافاسكريبت؟
  25. أحاول إنشاء اختبارات لتوابع غير متزامنة من خلال استخدام mocha في node.js ولكن لسبب ما يظهر لي الخطأ التالي: Error: timeout of 2000ms exceeded وهذا هو الكود: var module = require('../lib/myModule'); var should = require('chai').should(); describe('mytest1', function() { it('add', function(done) { this.timeout(15000); var person = { name: 'first', last: 'second' }; module.save(person, function(err, res) { should.not.exist(err); done(); }); }); it('get_data', function(done) { var uid = "1"; module.get(uid, function(err, res) { console.log(res); should.not.exist(err); done(); }); }); }); كيف يمكنني حل هذه المشكلة؟
×
×
  • أضف...