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

السؤال

نشر

أستخدم إطار العمل express النسخة 2 في node.js ووجدت طريقة لتمرير المتغيرات مع ال view من خلال استخدام المتغيّر locals:

res.render("myTemplate", { locals: { user: "test1" } });

ولكن هل يوجد طريقة باستخدام globals بدلاً من locals ؟ أي استخدام متغيرات موجودة بأماكن أخرى من الكود بشكل عام؟ وفي حال قمت بالتحديث للنسخة الأحدث من express كيف يمكنني تمرير القيم بشكل عام بين أجزاء الكود البرمجي؟

Recommended Posts

  • 1
نشر

بدءً من الإصدار الثالث في express لقد تم الاستغناء عن dynamicHelpers وبالتالي لم يعد بالإمكان استخدام الطريقة السابقة، بدلاً من ذلك يمكنك استخدام التابع app.locals والذي يمكنه تخزين جميع القيم والتوابع التي قد تحتاجها ضمن أجزاء الكود لديك حتى لو كانت بأماكن متفرّقة في حال لم تستخدم طرق الاستدعاء التقليدية require أو تصدير modules.

مثال:

app.locals.title = "test"; --> يمكنك تخزين قيم مفردة

//كما يمكنك تخزين توابع مع قيمها أيضاً بالشكل التالي:

app.locals({
    username: "user1",
    somefunction: function() {
        return "any result";
    }
});

وبالتالي يمكنك في أي مكان ضمن الكود استدعاء app.locals وأي قيم تحتويها:

var user = app.locals.username

أما بالإصدار الرابع من express.js 4 ، أصبح المتغيّر app.locals ببساطة كغرض Object من لغة جافاسكريبت بدلاً من أن يكون بهيئة تابع، وأصبح يجب عليك إضافة الخصائص كما تقوم عادةً بتعريفها للأغراض Objects كلٍ على حدى، بالشكل التالي:

app.locals.username = "user1";
app.locals.somefunction = function() {
    return "result here";
}

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

مثال:

res.locals.user = req.isAuthenticated() ? req.user : null;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...