blog.鶯梭庵

二〇一五年 文月 廿五日 土曜日

Node.js + Express.js 覚書その2・エラーページのカスタマイズ [/links]

この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。

Express.js でも、404 とか 500 とかのエラーページをカスタマイズできる。その方法は、FAQ ページに記載があるのだが、このページにはまだ日本語版がないので、解説しておく。

CoffeeScript を使ったコード例は以下の通り。


express = require 'express'

express()

.get '/', (req, res)->

res.sendFile __dirname + '/index.html'

.use (req, res)->

res.status(404).sendFile __dirname + '/404.html'

.use (err, req, res, next)->

res.status(500).sendFile __dirname + '/500.html'

.listen 3000


まずは前提として Application#use の仕様を確認しておく。このメソッドは引数としてパスと 1 つ以上のコールバック関数をとるが、パスを省略できる。パスを省略した場合、任意のリクエストでコールバック関数が実行される。ただし、コールバック関数の引数が 4 つであれば、その関数はエラーが起きたときに実行される。

Express.js は、サーバーが受け取ったリクエストに該当するミドルウェアを上から順番に探し、最初に見つかったミドルウェアを実行する。リクエストに該当するリソースがない場合、どのミドルウェアも実行されないが、その場合でもエラーは発生しない。単に組み込みの 404 ページが表示される。そこで、パスなしの Application#use をミドルウェアの最後に置いておけば、404 ページをカスタマイズできる。

500 エラーについては、パスなしの Application#use でコールバック関数の引数を 4 つにしたものを、やはりミドルウェアの最後に置く。エラーが起きたときは、リクエクトがなんであれ、そのコールバック関数が実行される。

[このカテゴリをまとめて読む。] [最新の記事を読む。]

RSS feed

カテゴリ

[/language] (98)
[/links] (254)
[/mac] (114)
[/music] (36)
[/origami] (406)
[/this_blog/ajax] (7)
[/this_blog/blosxom] (4)
[/this_blog/history] (12)
[/this_blog/perl] (9)

最新記事

パスワードについてのあなたの常識はもはや非常識かもしれない・その1 [/links]
ニューラルネットワークとディープラーニングで翻訳はどうなる・その5 [/language]
ニューラルネットワークとディープラーニングで翻訳はどうなる・その4 [/language]
HTTPS 対応 [/links]
ひらがな・カタカナ学習ウェブアプリ [/links]
日本語の「た」と英語の過去形 [/language]
ORI-REVO で回転楕円体を折る・その2 [/origami]
ORI-REVO で回転楕円体を折る・その1 [/origami]
折り紙建築 [/origami]
折鶴に松図小柄 [/origami]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その6 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その5 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その4 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その3 [/links]
改訂版・たぶん、ほとんどの人は viewport meta タグの指定をまちがえてる・その2 [/links]

羽鳥 公士郎