Tamim Fahed نشر 23 يونيو 2021 أرسل تقرير نشر 23 يونيو 2021 أحاول الاتصال بخادم خارجي يحوي قاعدة البيانات mongodb، وبما أن الاتصال سيكون على الشكل التالي: mongodb://username:password@host:port/database لقد قمت بإضافة اسم المستخدم، ولكن المشكلة بأن كلمة المرور تحوي الإشارة @ أيضاً. وعندما قمت بإضافة @ ضمن كلمة المرور ظهر لي عدة أخطاء بسبب ذلك. كيف يمكنني وضع كلمة المرور التي تحوي محارف وإشارات ومنها @ ضمن الاتصال؟ اقتباس
0 Sam Ahw نشر 23 يونيو 2021 أرسل تقرير نشر 23 يونيو 2021 يمكنك استبدال الإشارات في حال وجودها ضمن اسم المستخدم أو كلمة المرور بالترميز الذي يدل عليها. على سبيل المثال، يمكنك كتابة الرمز (%40) بدلاً من @ ضمن كلمة المرور فيصبح الاتصال على الشكل التالي: //بفرض كلمة المرور هي my@password mongoClient.connect("mongodb://username:my%40pssword@host:port/dbname?authSource=admin", { useNewUrlParser: true }, function(err, db) { } ); وفي حال كنت تستخدم node.js يجب عليك أيضاً تمرير التالي ضمن تابع الاتصال: {uri_decode_auth: true} أما الاتصال عن طريق mongoose فمكن أن يتم بالشكل التالي: mongoose.connect('mongodb://localhost/mydatabase', {user: 'usr', pass: 'any@password@'}, callback); 1 اقتباس
0 Wael Aljamal نشر 23 يونيو 2021 أرسل تقرير نشر 23 يونيو 2021 يمكن استعمال الدالة : encodeURIComponent لتخطي مشكلة الترميز const dbUrl = `mongodb://adminUsername:${encodeURIComponent('adminPassword')}@localhost:27017/mydb`; وفي حال استخدامها لنفس الدالة مع mongose سنضطر لتمرير الخيار useNewUrlParser: true, بهذه الدالة سيتم تخطي كافة المحارف الخاصة اقتباس
0 عبدالله عبدالرحمن11 نشر 23 يونيو 2021 أرسل تقرير نشر 23 يونيو 2021 إذا كان لديك رمز @ أو غيرها من الرموز فيجب عليك ترميزها أي إستبدالها بالأرقام الخاص بها ويمكنك تحويل كلمة السر من هنا ومن ثم إستبدال الرموز ووضع الأرقام الخاصة بها اما إذا كنت تستخدم MongoClient MongoClient = require('mongodb').MongoClient; let options = { useNewUrlParser: true, auth: { user: 'usr', password: 'p@sswrod' } }; MongoClient.connect(url, options, callback); وايضاً يمكنك إستخدام حزمة mongodb-uri كالآتي const mongoose = require('mongoose') const mongodbUri = require('mongodb-uri') let mongooseUri = mongodbUri.formatMongoose(config.mongo.uri) mongoose.connect(mongooseUri, config.mongo.options) وهذه هي الرموز الذي يجب عليك ترميزها : / ? # [ ] @ اقتباس
السؤال
Tamim Fahed
أحاول الاتصال بخادم خارجي يحوي قاعدة البيانات mongodb، وبما أن الاتصال سيكون على الشكل التالي:
mongodb://username:password@host:port/database
لقد قمت بإضافة اسم المستخدم، ولكن المشكلة بأن كلمة المرور تحوي الإشارة @ أيضاً. وعندما قمت بإضافة @ ضمن كلمة المرور ظهر لي عدة أخطاء بسبب ذلك.
كيف يمكنني وضع كلمة المرور التي تحوي محارف وإشارات ومنها @ ضمن الاتصال؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.