かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Express 4.x

Express な API でエラーハンドリングするよ

TypeScript な Express でAPI作ってエラーを返す処理を都度書いているとめんどいので、エラーハンドリングして返すようにしたメモ エラーハンドリングのミドルウェアはルーティングより後に書く 上から順番にルーティングにマッチしていくか見ていって、該当…

Expresss ioredis で Redis 入門した

JWT token の勉強をしていて、Redis で token を管理しているという話を教えてもらったので Redis を使うだけの環境を作ってみていました。 Docker で環境を構築します 構成 / |- /api (express) | |- Dockerfile |- /redis |- docker-compose.yml docker-co…

JavaScript catch したエラーをエラーの種類で別の処理にしたい

1つの catch 節でエラーをキャッチして、エラーの種類で処理を変えたい場合のメモ。 e.g. function verify(token) { try { // 期限切れの場合 `TokenExpiredError` の例外が発生 const verified = jwt.verify(token, process.env.TOKEN_SECRET); // revoke …

JavaScript Express async function の UnhandledPromiseRejectionWarning にハマる。

Express で簡単な JWT の API を作って実験していた際に middleware を async function に変更したら UnhandledPromiseRejectionWarning が出るようになってハマってしまったのでメモ UnhandledPromiseRejectionWarning になったコード // router const rout…

node.js Express でHTMLとか確認できる簡単なローカルサーバー作ってみた

WEBサイトの制作のときならgulpでサーバー起動してCSS・JSを本番と同じようにコンパイルして確認するのが良いのですが、実験や学習用にでわざわざコンパイルまでしなくていいローカル環境が欲しかったのでexpressで作ってみました。 インストール $ npm inst…

Express4 stylusのコンパイルにハマる

Express4系でstylusを使おうとミドルウェアのを書いたのですが、コンパイルできなかかったりとはハマったのでメモ stylusとnibを導入 $ npm install --save stylus nib コンパイルできなかった例 // app.js var stylus = require('stylus'), nib = require('…

Express4 jadeからのjsファイル読み込みにハマる。

Express4系でjadeテンプレートを使いjadeでアプリ内のjavascriptファイルをscriptタグで読み込もうとしたら404になってハマってしまったのでメモ。 いわゆるスタティックファイルの読み込みです。 エラーになっていた状態 // app.js var express = require('…

ドットインストール Express入門 Express 4.x でやる時のちがいまとめ。

https://dotinstall.com/lessons/basic_expressjs Express 4.xでやり終わったので、違ってた部分とかをまとめておこうと思います。 note. Express 4.xではapp.routerは廃止されているので、Express 3.xで必須だったapp.use(app.router)の記述は必要無い。 ap…

Express 4.x エラーハンドリングにハマる。

引き続き、ドットインストールのExpress入門 をやっています。 サンプルはExpress3系ですが、Express4系でチャレンジしています。今回は最後の #21 エラー処理をしていこう 値が正しくない時などエラーページを表示させる方法のレッスンでハマりました。 サ…

Express 4.x でmethod-overrideでput / delete メソッドを使いたいにハマる。

ドットインストールのExpress入門 をやっていて、サンプルはExpress3系なのですが、4系でやっていたので色々ハマりました。 たいていはモジュールを別途インストールして〜で済んだのですが、 #12 ルーティングを確認しようでPUT、DELETEメソッドに対応させ…