2016-10-03 5 views
0

私は、基本的なツイッターインターフェースであるエクスプレスアプリを構築しています。このエクスプレスアプリにエラーページを追加しますか?

アプリケーションにエラーページを追加して、ルートに問題が発生した場合、デフォルトのエラーコードではなくフレンドリなメッセージが表示されるようにします。ここで

は、私のコードの抜粋です:

//Tell app to render template 
app.get('/', function(req, res){ 
    if(!error){ 
     res.render('index', { 
      myName: myName, 
      profileImage: profileImage, 
      screenName: screenName, 
      followerCount: followerCount, 
      dateTweeted: dateTweeted, 
      tweetContent: tweetContent, 
      noOfRetweets: noOfRetweets, 
      noOfLikes: noOfLikes, 
     });  
    } 
}); 

は、なぜ私はこれを行うことはできませんか?

else{ 
    res.send('sorry, bro, page not found!); 
} 

また、「次の」ハンドラにエラーを渡す必要がありますか?私はそれがどのように働くかについて頭を浮かべることはできません。

本当にありがとうございます。

+0

のhttp:/ /www.hacksparrow.com/express-js-customerer-pages-404-and-500.html – Pankaj

+0

あなたの書いたコードは意味をなさない。どのようにエラー値を取得しますか?コード内の何かを操作しているときにエラーが発生したときは、いつエラーが発生するかを知るようになります。 – abdulbarik

+0

私は少し失われています:( – bloppit

答えて

0

あなたの質問はあまり具体的ではありませんが、操作中にエラーが発生すると思われます。

その後、あなたがエラー

//Tell app to render template 
app.get('/', function(req, res) { 
    if ("not error") { 
//You can do whatever you want 
    res.status(200).send({message:"Success message"}) 
    }else{//If error you can choose your error code with relevant message 
     res.status(400).send({message:"Bad request error"}); 
       //OR 
     res.status(404).send({message:"Not found error"}); 
       //OR 
     res.status(401).send({message:"Unauthorization error"}); 
       //OR 
     res.send(500).send({message:"Any server side erorr"}); 
    } 
}); 
0

を取得した後あなたがあなたのためにこれを行うカスタムmiddlewareを構築することができ、このようなエラーの種類を送信することができます...

function errorMiddleware(req, res, next) { 
    // implement some logic, do your check... 
    let thereAreErrors = /* ? */ false; 

    if(!thereAreErrors) { 
    return next(); 
    } 

    return res.status(400).end(); 
} 

function indexRouteCtrl(req, res) { 
    return res.render('index'); 
} 

app.get('/'/, errorMiddleware, indexRouteCtrl); 
関連する問題