2016-04-14 19 views
1

Web sayfam, kullanıcıların web sitesine erişmek için giriş yapmasını gerektirir. Bazı sayfalar sadece bir kullanıcı günlükleri izlenebilir Örneğin, burada (ekspres) sadece bir kez giriş yapmış görüntülenebilen bir profil sayfalarına bir yoldur.node.js dosyasında uygun bir hata sayfası yapma

router.get('/profile', function (req, res) { 
    User.findOne({_id: req.user._id}, function (err, user) { 
     if (err) { 
      return next(err) 
     } else { 
      res.render('main/profile', {user: user}); 
     } 
    }); 
}); 

birisi /profile sayfasına erişmek için çalışırsa without logging in, bir sürü hata içeren bir sayfa alacaklar.

Yapmak istediğim, rastgele bir hata sayfası göstermek yerine, bu tür kullanıcıları uygun bir hata sayfasına yönlendirmektir. return next(err)'u res.json (Bu sayfaya erişemezsiniz) gibi bir şeyle değiştirmeyi denedim, ancak bu çalışmıyor gibi görünmüyor.

+1

http://stackoverflow.com/questions/6528876/how-to-redirect-404-errors-to-a-page-in -expressjs – m2j

+2

http://code.runnable.com/UTlPPV-f2W1TAAEf/custom-error-pages-in-express-for-node-js – m2j

+0

Tamam, güzel şeyler. Bunu anladım. Teşekkürler. – MonkeyOnARock

cevap

1

Bu, yukarıdaki yorum bölümünde bulunan bağlantıyı kullanarak soruma cevaptır. Temel olarak, birileri web sitemin bazı bölümlerine giriş yapmadan erişmeye çalıştığında, errors klasöründe ve 500 dosya adında yer alan bir hata sayfasına yönlendirilirler. Ve bu belirli hata türü 500 kod hatası olduğundan, res.status(500)'u kullandık. Burada (ana sunucu dosyasında gider) tam kodudur:

app.use(function(err, req, res, next) { 
    res.status(500); 
    res.render('errors/500'); 
}); 
İlgili konular