• 0

كيف أطبع النتيجة بعد الاستعلام من قاعدة بيانات NeDB في Nod.JS NW.JS ؟

<!DOCTYPE html>
<html>
  <head>
    
  </head>
  <body>
    <script>

    var markdown = require('markdown').markdown;
	
	
	var Datastore = require('nedb')
	db = new Datastore('db/db.nedb');
	db.loadDatabase();

db.find({ name: 'usama' }, function (err, docs) {

document.write(JSON.stringify(docs)); //طباعة النتائج ههنا بسهولة، 
});

// ولكني أريد طباعة النتائج خارج الدالة ههنا مثلا أو في مكان آخر في الأسفل
    </script>
	


  </body>
</html>

ٲرجو أن يكون سؤالي واضحا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

توجد طريقتين :

- إما أن تنفذ الامر مباشرة على الـ callback كما فعلت في document.write .

- أو تنادي دالة أخرى و توفر لها المتغير كمعامل ، كمثال

var markdown = require('markdown').markdown;	
	
var Datastore = require('nedb')
db = new Datastore('db/db.nedb');
db.loadDatabase();

db.find({ name: 'usama' }, function (err, docs) {
	renderResults(docs);	// هنا إستخراج عملية الرسم لدالة أخرى
});

function renderResults (docs) {
	document.write(docs); // و هنا تنفيذ الامر
}

و السبب في الامرين أن عملية جلب البيانات من قاعدة البيانات nedb "غير متزامنة" مثل الـ Ajax و بالتالي لا يمكنك الاستفادة من البيانات إلا داخل هذه الدالة المسترجعة .

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

راجعتُ رسالتك والشيفرة هنا في السؤال ويبدو أن مشكلتك أنك تحتاج إلى تعلم العمل مع وثيقة الصفحة ومع جافا سكريبت؛ لا يوجد أي خطأ في الشيفرة وما تريده شيء بديهي ستستخدم الـكائـن النـاتج من الإستعلام وستنصنع عناصـر في الوثيقة وستضيفها إلى الوثيقة، لا يوجد أي مشاكل، أنصحك بقراءة الجزء الأول (Language) والثاني (Browser) من كتاب: http://eloquentjavascript.net/
أتمنى لك التوفيق صديقي :)

تمّ تعديل بواسطة يوسف سيد

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن