[AdonisJs] 固定のエラーページを表示する

AdonisJsのエラーページ

AdonisJSの開発環境だとそれなりに活かしたエラーページが表示されるようになっています。

image

しかしこれが本番環境だと味気ないただの文字列が表示されるだけとなってしまう。

そのため、エラーページの表示は自分で作らないといけません。

作るのは比較的簡単でError Handlingを利用するだけである。

実装方法

まずは Handler.js をコマンドで生成します。

adonis make:ehandler

次に作成された Handler.js (App/Exceptions/Handler.js) を編集します。

'use strict'

const Env = use('Env')
const BaseExceptionHandler = use('BaseExceptionHandler')

class ExceptionHandler extends BaseExceptionHandler {
  async handle (error, context) {
    const { view, response } = context

    if (Env.get('NODE_ENV') === 'production') {
      // 本番環境の時だけ動作
      switch(error.status) {
        case 401:
          return response.status(error.status).send(view.render('error.401'))
        case 403:
          return response.status(error.status).send(view.render('error.403'))
        case 404:
          return response.status(error.status).send(view.render('error.404'))
        case 500:
          return response.status(error.status).send(view.render('error.500'))
      }
    }

    // これを忘れると開発環境で元のエラーページが表示されなくなるので注意
    return super.handle(error, context)
  }
}

module.exports = ExceptionHandler

そして最後に各種view (error.401 etc) を作ります。

これで本番環境で自分で作ったエラーページが表示されるようになります。

開発環境で確認する時は .env を一時的に編集するかなりしてください。


webサイトリニューアル

まだ機能的に工事中の部分もありますが新たにリニューアルオープンしました。

blogメインで運用していく予定です。

ゲームのこととか、このwebサーバーをadonisjsで作ったのでそのこととか、プログラミングのこととかととか……。趣味のことをひたすら書き残していきたいです。

サイト作ったからには更新できるようにがんばります……。

なにもないのもあれなので画像のアップロードテスト兼ねてミルちゃん置いときます。

image