オレオレ・ウィッシュリストアプリを作った
Node.js を CGI として利用する、オレオレアプリを作った。その名も Neo's Node.js CGI Wish List。
Node.js を CGI として使うアイデアは過去にも書いてきた。
また、URL パラメータを利用した簡易パスワード認証による CGI アプリという発想も、以前からやってきたことだ。
- Neos21/neos-php-micro-blog: PHP 製のオレオレ・マイクロ・ブログ
- Neos21/neos-ruby-bookmarks: Ruby 製のオレオレブックマーク
- Neos21/neos-python-note: Python 製のオレオレノート
だもんで、今回作ったモノは別に目新しいモノじゃないんだけど。
何をしたかったかというと、
- 今日、「○○」という映画が面白そうなのを見つけた。いつか見たい
- → 1週間後、無事視聴できた
みたいな記録を取りたかったのだ。
コレまで Google Keep の「チェックボックス・リスト」で運用したり、ToDo アプリを活用してみたりしていたのだが、項目ごとに「作成日」と「完了日」を入れたいなーというところが上手いこと解決できず、またコレだけのことにイチイチ大仰なサービスに登録したりするのも嫌だったので、ちゃちゃっと自作した。
「いつかコレやりたい」→「やった」を管理したかったので「ウィッシュリスト」と名付けたが、前述のとおり、使い方によっては ToDo アプリにもできそうだ。永続化したい項目と意味合いが微妙に異なるぐらいなので、そんなもんよね。
CGI アプリの導入方法は GitHub リポジトリの README に記したとおり。Node.js がインストールされてる Apache サーバとかで、当該ファイルを CGI として動かせるように配置すれば良い。パスワード認証用のファイルは通常 Web サイトとしてアクセス出来ない位置に置くこと。データは単一の JSON ファイルに保存するようにしてあるので、保存先のパスだけ指定してやる。
自分はこの CGI を自前のサーバに複数個設置して、「見たい映画リスト」「聴きたい音楽リスト」「行きたい場所リスト」をそれぞれ管理できるようにした。個人の用途ではコレで事足りていて良い。
Node.js スクリプトの中に、HTML や JS を文字列として出力するよう記述することになるので、恐ろしく可読性が悪い。いまさら onclick
とかも乱暴に使ってるし、極めて雑なコードを書いた。データ永続化は DB や SQLite ですらなくただの JSON ファイルだし、個人用だからと同時アクセスなんかも全く考慮してない。
エンタープライズ向けのカッチリしたアプリケーションを作っていると、色んな周辺要素を考慮する必要があるので、単純な管理画面をこしらえるだけでもあれやこれや面倒臭いことになる。それはそれでしょうがないし、意味がないことでは勿論ないんだけど。
でも、開発者が自分で使うモノだったら、自分でメンテすればいいので、隅から隅までカッチリ作る必要もない。本質的に実現したいことだけ実現できればいいし、不正なパラメータのチェックとかバリデーションとかもそんなに気にしなくても良い。問題が起きたら自分で直せばいいのだし。
この気楽さを自分一人の世界では実現できちゃうから、世の中誰もが自分でコード書いて必要な部分だけ小さくシステム化しておいたら色々捗るのになーって思ってしまったりする。