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

Tamim Fahed

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

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

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

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

    1

أجوبة بواسطة Tamim Fahed

  1. أقوم باستعلام من خلال find ولكن النتيجة كبيرة جداً.

     فهل يوجد طريقة استطيع من خلالها حفظ نتيجة الاستعلام ضمن ملف بدلاً من إظهارها ضمن موجه الأوامر ؟ مع إمكانية إضافة الخاصية pretty للنتيجة.

  2. أحاول تثبيت mongodb من خلال homebew، وقد قمت بالخطوات التالية:

    brew update
    
    ثم
    
    brew install mongodb

    ولكن يظهر لي الخطأ التالي:

    Error: No available formula with the name "mongodb" 
    ==> Searching for a previously deleted formula (in the last 
    month)...
    Warning: homebrew/core is shallow clone. To get complete history 
    run:
      git -C "$(brew --repo homebrew/core)" fetch --unshallow
    
    Error: No previously deleted formula found.
    ==> Searching for similarly named formulae...
    Error: No similarly named formulae found.
    ==> Searching taps...
    ==> Searching taps on GitHub...
    Error: No formulae found in taps.

    لماذا يظهر هذا الخطأ؟ وماهي الطريقة الصحيحة لتثبيت mongodb من خلال homebrew ؟

  3. استخدم المكتبة file-uploader في node.js للتعامل مع الملفات. وعندما أقوم برفع الملف إلى الخادم، يتم إيقاف الخادم ويظهر الخطأ التالي:

    Error: ENOSPC.

    وحالة الخادم كالتالي:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/xvda1      7.9G  4.1G  3.5G  55% /
    udev            288M  8.0K  288M   1% /dev
    tmpfs           119M  168K  118M   1% /run
    none            5.0M     0  5.0M   0% /run/lock
    none            296M     0  296M   0% /run/shm
    /dev/xvdf       9.9G  3.0G  6.5G  32% /vol
    overflow        1.0M  1.0M     0 100% /tmp

    ماهو هذا الخطأ ENOSPC. ؟

    • أعجبني 1
  4. أرغب بتنفيذ أوامر معينة مثل الطباعة عندما يحدث إنهاء أو إيقاف تشغيل لخادم الويب node.js، وقمت باستخدام الدالة process كالتالي:

    process.on('exit', function (){
        console.log('the server will shut down..');
    });

    ولكن عندما أقوم بالضغط على crtl-c في لوحة المفاتيح لإيقاف الخادم، أو حتى عندما يحدث أي خطأ Exception يوقف عمله، لا تظهر هذه الرسالة.

    • أعجبني 1
  5. أحاول استخدام الباني constructor لمجموعة من الأغراض بالشكل التالي:

    class Social {
      constructor(tags) {
        this._tags = tags
      }
    
      printUsername() {
        return 'My name is John'
      }
    }

    والآن عندما أقوم بإضافة التصدير بالشكل التالي:

    module.exports = Social

    لا تحدث أي مشكلة، ولكن إذا قمت بإضافتها بالشكل التالي:

    export default Social

    يظهر لدي خطأ بأن Social is not a constructor.

    فما هو الفرق بين هذه الطريقتين ولماذا يحدث خطأ عند استخدام إحداها في بعض الأحيان؟

    • أعجبني 1
  6. أحاول تنفيذ عملية باستخدام spawn في node.js من خلال تشغيلها ضمن الـ shell كالتالي:

    NODE_ENV=production node project/server.js

    وهذا هو الكود ضمن الملف:

    var spawn = require('child_process').spawn;
    var start = spawn('NODE_ENV=production',['node','project/server.js']);

    ولكن يظهر لي هذا الخطأ:

    events.js:72
            throw er;
                  ^
    Error: spawn ENOENT
        at errnoException (child_process.js:980:11)
        at Process.ChildProcess._handle.onexit (child_process.js:771:34)

    ما حل هذه المشكلة؟

  7. لقد قمت بتحميل النسخة الأخيرة من mySQL 8.0 و نسخة node.js. ولكن لا استطيع الاتصال مع قاعدة البيانات. يظهر لي الخطأ التالي:

    C:\Users\myproject>node app.js
        C:\Users\myproject\node_modules\mysql\lib\protocol\Parse
        r.js:80
                throw err; // Rethrow non-MySQL errors
                ^
    
    Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
        at Handshake.Sequence._packetToError (C:\Users\myproject\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)

    والكود بسيط فقط اتصال مع قاعدة البيانات:

    var mysql = require('mysql');
    
        var connection = mysql.createConnection({
          host: "localhost",
          user: "root",
          password: "",
          insecureAuth : true
        });
    
        connection.connect(function(err) {
          if (err) throw err;
          console.log("Connected to database!");
        });

    كيف يمكنني حل المشكلة؟

    • أعجبني 1
  8. عندما أحاول تشغيل خادم الويب node.js يظهر لدي الخطأ التالي:

    npm ERR! path /usr/local/lib/node_modules
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access
    npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/local/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.

    حاولت تغيير المستخدم ولكن نفس الخطأ. كيف يمكنني حل هذه المشكلة؟

  9. لقد قمت برفع مشروع node.js على الخادم بنظام التشغيل ubuntu، وقمت بتشغيل الخادم من خلال استخدام pm2. ولكن أرغب بإضافة رابط معيّن route بحيث عندما يتم استقباله من الخادم أن يقوم بإعادة تشغيل الخادم أو إيقافه.

    فهل من الممكن الوصول إلى pm2 والتحكّم بهذه الأوامر من node.js؟ أو يجب أن أتخلى عن استخدام pm2 وألجأ إلى طريقة أخرى؟

    • أعجبني 1
  10. لدي مشروع فيه خادم الويب node.js، وضمن هذا المشروع يوجد صفحة تظهر للمستخدم اسماء وأرقام نسخ المكتبات الحالية المستخدمة ضمن المشروع. فهل يوجد طريقة أستطيع من خلالها بالحصول على هذه المعلومات ضمن node

    مثال:

    "express": "^4.17.1",
    "bcryptjs": "^2.4.3",
    .....

    وأيضاً إجراء بعض العمليات مثل العملية npm update بشكل برمجي؟

    • أعجبني 2
  11. لقد لاحظت في التوثيق الرسمي وجود معامل unwind$ ويتم استخدامه بكثرة مع المصفوفات, ولكن عندما قمت بتطبيقه فقد أعطى نفس المستندات بشكل متكرر ولم أتمكن من فهم آلية عمله على المصفوفات.

    ما وظيفة هذا التابع تحديداً؟ ومتى يجب أن يتم استخدامه في mongodb؟

    • أعجبني 2
  12. لدي نوعين من schema بشكل منفصل وحاولت الإشارة إلى واحدة منهما ضمن الأخرى كالتالي:

    var authorSchema = new Schema({
        name: String,
        age: Number,
       
    });
    
    var  Author = mongoose.model('Auhor') 
    
    var bookSchema = new Schema({
        title: String,
        writtenBy: Author,
    });

    ولكن لم أحصل على النتيجة الصحيحة، ماهي طريقة الإشارة إلى الschema ضمن أخرى؟ لكي أستطيع الوصول إلى الكاتب من خلال إجراء الاستعلام عن الكتب الموجودة بشكل مشابه للتالي:

    book.writtenBy.name

     

    • أعجبني 1
  13. لدي استعلام يقوم بإجراء aggregation على المستندات الموجودة ضمن مجموعة. 

    وأستطيع الحصول على النتيجة وطباعتها باستخدام print:

    print(resultOfQuery)

    ولا يوجد أي مشكلة في أي استعلام أقوم بتنفيذه لأنني أحصل على النتيجة وأستطيع طباعتها، لكن إذا حاولت إعادة النتيجة عن طريق return:

    return resultOfQuery

    يظهر لدي الخطأ التالي:

    TypeError: ObjectId('5f4351948e86c20b1d1c0d3c') is not JSON serializable

    لماذا يظهر هذا الخطأ فقط في return؟ وماهي الطريقة الصحيحة لإعادة النتائج؟

    • أعجبني 1
  14. لدي مشروع رئيسي يتصل بقاعدة بيانات mongodb ولكن بضمنه أيضاً أقسام أخرى صغيرة تتعامل مع قواعد بيانات مستقلة عن بعضها.

    ولكن المشكلة أن mongoose لا يسمح بإجراء أكثر من اتصال مع قواعد البيانات بما أن المودل مبني من خلال إنشاء غرض mongoose واحد. وأيضاً المشكلة الثانية أنه لا يمكنني إنشاء أكثر من نسخة من نفس الغرض mongoose ضمن node js.

    لقد حاولت استخدام التوابع التالية عند إنشاء الاتصال في mongoose:

    createConnection()
    
    و
    
    openSet()

    ولكن لم يتم حل المشكلة.

    هل يوجد طريقة معيّنة لحل هذه المشكلة وإجراء أكثر من اتصال مع قواعد بيانات مختلفة ضمن نفس المشروع؟ وهل هنالك أي مكتبات أو إضافات قد تسهّل إدارة هذه الاتصالات؟

    • أعجبني 1
  15. عند وجود object ضمن الكود وأقوم بطباعته من خلال:

    console.log(object_variable)

    يظهر أحياناً في الكونسول بالشكل التالي:

    [object]

    بدلاً من قيمة هذا الغرض. هل يوجد طريقة لإظهار محتويات هذا الغرض ضمن الكونسول بدلاً من طباعة الكلمة [object] فقط؟

  16. لدي خادم ويب node.js وأرغب بالتعامل مع الملفات النصية من كتابة وتعديل لبعض البيانات، ومن خلال البحث وجدت ثلاث طرق للتعامل مع الملفات fs.write و fs.writeFile و fs.createWriteStream

    ولكن ماهو الفرق بين هذه الطرق الثلاث؟ ومتى يجب علي استخدام كل واحدة منها؟

    • أعجبني 1
  17. لدي خادم ويب node.js وأرغب عند تشغيله بتمرير قيم معيّنة كمتغيرات ومعالجتها ضمن كود الجافاسكريبت، حالياً أقوم بتشغيل الخادم من خلال الأمر التالي:

    node server.js

    ومن خلال التوثيق وجدت أنه يمكنني تمرير قيم ل options وأيضاً لمتغيرات arguments فيصبح الأمر بالشكل التالي:

    node server.js (arguments)

    ولكن كيف يمكنني الوصول لهذه المتغيّرات التي سأقوم بتمريرها هنا ضمن ملف server.js؟ وماهي الطريقة لوضع قيم arguments ضمن هذا الأمر؟

    • أعجبني 1
  18. لدي مستندات بالشكل التالي:

    {
    	"_id" : ObjectId("fc1054ffa7540f346c3e7086"),
        "username" : "betman999",
        "role" : "User",
    	"__v" : 0
    }

    كيف يمكنني إيجاد جميع المستندات التي لها نفس قيمة الحقل username؟ أي طباعة المستخدمين الذين لهم نفس اسم المستخدم

    • أعجبني 1
  19. أقوم باتباع خطوات تحميل mongodb على نظام ubuntu في التوثيق الرسمي، وبعد أن قمت بإنشاء المفتاح العام وقائمة الملفات المطلوبة وإعادة التحديث apt-get update. ولكن عندما وصلت إلى خطوة تحميل الملفات:

    sudo apt-get install -y mongodb-org

    ظهر لي الخطأ التالي:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    
    E: Unable to locate package mongodb-org

    كيف يمكنني حل هذه المشكلة؟

    • أعجبني 1
  20. لقد لاحظت أن أي اسم أقوم بكتابته للمجموعة collection يتم إضافة الحرف s له:

    mongoose.model('book', bookSchema); // books يصبح 

    حتى في بعض الأحيان أحصل على اسماء خاطئة قواعدياً مع إضافة s. كيف أستطيع تعطيل هذه الميزة في mongoose؟ هل يجب أن أعيد تسمية المجموعات كلها بشكل يدوي؟

    • أعجبني 1
  21. لقد قمت بتحميل نسخة mongodb الخاصة بنظام ماك، وأحاول الآن إجراء الاتصال من خلال الأمر التالي:

    init mongod start

    ولكن أحصل على الرسالة التالية: Command Not Found

    كما حاولت أيضاً الأمر:

    service mongod start

    ولكن حصلت على خطأ آخر أيضاً:

    service: This command still works, but it is deprecated. Please use launchctl(8) instead.
    service: failed to start the 'mongod' service

    كيف يمكنني تشغيل mongodb وأيضاً إضافتها كخدمة حتى تعمل مباشرةً مع بدء النظام؟

    • أعجبني 1
  22. لدي مستند فيه مصفوفات بالشكل التالي:

    address: {
        localAddresses: [
            {
                street: "St123",
                city: "New Jersey",
                country: "USA"
            }
            {
                street: "Ava Revenue-111",
                city: "Houston",
                country: "USA"
            }
    
        ]
    }

    وأحاول إزالة الحقل street من المصفوفة localAdresses من خلال استخدام unset كالتالي:

    update(
        { _id: id},
        { $unset: { 'address.localAddresses.$.street': 'Ava Revenue-111'} }
    );

    ولكن لم يتم إزالة هذا الحقل بشكل كامل من المصفوفة. كيف يمكنني إزالته بالشكل الصحيح؟

    • أعجبني 1
  23. لقد لاحظت وجود كل من save و insert لإضافة المستندات على قاعدة بيانات mongodb. ولكن عندما قمت باستخدام كل منهما حصلت على نفس النتيجة دون أي فارق.

    books.save({title:"NewBook",author:"test1"})
    books.insert({title:"NewBook2",author:"test2"})

    فلماذا يوجد كل من save و insert؟ ومتى يجب استخدام كل واحدة؟

    • أعجبني 1
×
×
  • أضف...