2016-03-30 20 views
0

Umarım bana yardım edebilirsin. Bir cevabı aradım ancak bir tane bulamadım.Hızlı bir js uygulaması oluşturdum. Bir sayfayı yüklediğimde, her zaman gösterilecek değişkenler için yenilenmem gerekiyor mu?

Yeşim içinde basit bir formu olan Express.js uygulamasında bir uygulama geliştirdim. Veritabanı bağlı ise "Evet" göstermelidir.

Sayfa yüklenecek ve görüntülenmeyecek. Eğer daha sonra Ctrl-R veya yenilediğim değeri yenileyeceksem doğru görünecektir.

Bunu nasıl otomatik olarak yenileyecek şekilde görünecek şekilde yaparım ..?

Alkış ve teşekkür ederim,

Matt

index.jade

p Connected to DB?: 
    if locals.connected 
    p= connected 

index.js (app.js aracılığıyla yönlendirilir -> routes.js -> index.js

Var connected;  
function listCollections() { 
     mongoose.connection.on('open', function() { 
     connected = "Yes"; 
}); 
} 


exports.init = function(req, res, next){ 
    listCollections(); 
    res.render('./index', { 
    connected:connected 
    }); 
} 
}; 

Routes.js

function ensureAuthenticated(req, res, next) { 
    if (req.isAuthenticated()) { 
    return next(); 
    } 
    res.set('X-Auth-Required', 'true'); 
    req.session.returnUrl = req.originalUrl; 
    res.redirect('/login/'); 
} 

function ensureAdmin(req, res, next) { 
    if (req.user.canPlayRoleOf('admin')) { 
    return next(); 
    } 
    res.redirect('/'); 
} 

function ensureAccount(req, res, next) { 
    if (req.user.canPlayRoleOf('account')) { 
    if (req.app.config.requireAccountVerification) { 
     if (req.user.roles.account.isVerified !== 'yes' && !/^\/account\/verification\//.test(req.url)) { 
     return res.redirect('/account/verification/'); 
     } 
    } 
    return next(); 
    } 
    res.redirect('/'); 
} 
exports = module.exports = function(app, passport) { 
    app.all('/*', ensureAuthenticated); 
    app.all('/*', ensureAccount); 
    //product 
    app.get('/', require('./views/index').init); 
    app.post('/', require('./views/index').init); 


}; 
+0

Rota yapılandırmanızı gösterebilir misiniz? –

+0

Merhaba, evet gönderiye ekleyeceğim. –

cevap

0

Eşzamansız olduğundan, bağlantı kurulmadan önce sayfa görüntülenir. Böyle bir şey yapmalısın.

 function listCollections(callback) { 
      mongoose.connection.on('open', function() { 
       callback("Yes"); // render callback gets invoke after connection 
      }); 
     } 


     exports.init = function(req, res, next){ 
      listCollections(function(connected){ // passing render as callback 
       res.render('./index', { 
        connected:connected 
       }); 
      }); 
     } 
+0

Teşekkürler, bu benim için çalıştı! –

İlgili konular