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

كيف أستطيع إرسال رسائل flash في إطار العمل Express.js؟

Bassel Jhr

السؤال

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

لقد قمت بإضافة التالي:

<% if (message.length > 0) { %>
   <div class="alert alert-danger"><%= message %></div>
 <% } %>

ثم في مسار التوجيه قمت بإضافة التالي للتأكد من عملها:

router.get('/register', function(req, res) {
  res.render('/register', { message: req.flash('register message here') });
});

ثم وضعت الإعدادات التالية:

app.configure(function() {
 app.use(express.session({ secret : 'topsecrethere' })); 
});

ولكن لم تعمل معي الآلية السابقة. كيف يمكنني تطبيقها بشكل صحيح؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

لإظهار رسالة flash ، يجب عليك تثبيت وحدة flash في مشروعك باستخدام cmd:

npm install express-session --save
npm install cookie-parser --save
npm install connect-flash --save

الآن عليك إضافة بعض التعليمات البرمجية إلى ملف app.js للوصول إلى هذه الوحدات:

var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var app = express();
app.use(cookieParser('secret'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());
\\flash الآن إنشاء رسالة 
req.flash('success', 'Registration successfully');
res.locals.message = req.flash();
\\ لعرضها
<% if(locals.message){ %>
    <div class="alert alert-success" role="alert">
        <strong>Well done!</strong> <%=message.success%>
    </div>
<% } %>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يجب إعداد التطبيق لاضافة ميزة الرسائل flash اذا كنت تستخدم الحزمة "connect-flash" قم بتغيير الاعدادات للتالي 

var flash = require('connect-flash');

app.configure(function() {
 app.use(express.session({ secret : 'topsecrethere' })); 
 app.use(flash());
});

  وتأكد من تعيين الرسالة بشكل صحيح كما التالي

req.flash('message', 'Email already exists.');

والحصول على الرسالة يكون بالشكل التالي

router.get('/register', function(req, res) {
  res.render('/register', { message: req.flash('message') });
});

 

لكن رسائل ال flash تستخدم لارفاق رسائل لمرة واحدة عند تحويل المستخدم من مسار لاخر، اذا كنت تريد اظهار الرسالة مباشرة ضمن نفس المسار مرر رسالتك مباشرة كالتالي 

router.get('/register', function(req, res) {
  res.render('/register', { message: 'Email already exists.' });
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...