2015年10月4日日曜日

EI Capitanで日本語入力で勝手に変換された漢字をひらがなに戻すには。

MacOsをEI Capitanで、日本語入力をすると勝手に漢字に変換されます。
ちなみに、日本語入力中に、勝手に漢字に変換された文字をひらがなにするには
escキーを押下すれば良いです。
忘れないうちにメモしておきます。

Herokuでexpressのwebアプリケーションを動かす。

expressアプリ作成及び動作確認の記事に続いて、今度はexpressのwebアプリケーションをHeroku上で動作させた時のメモです。
Herokuへwebアプリケーションを設置する方法は、HerokuのNode環境作成のメモの記事とほとんど同じ内容です。
が、全く同じ方法だと、expressのwebアプリケーションは正常に動作しませんでした。
その時の、解決方法もメモしておきます。

まず、Webアプリケーションのディレクトリに移動して、次のコマンドを入力します。
expressアプリ作成及び動作確認の記事で作成した[xxxxx]ディレクトリに移動します。

    heroku create --stack cedar

そしたら、webアプリケーションサイトのURLとGitのURLが表示されるので、メモしておく。(メモしておいたほうがいいでしょう。)

次のコマンドを順番に入力して、Gitへの登録とwebアプリケーションのデプロイをします。
※[yyyyy]は任意のコメント。[zzzzz]は、前の操作で、表示されるWebアプリケーションサイトのURLの"https://" と ".herokuapp.com/" の間の文字列)

git init
git add .
git commit -m "[yyyyy]"
heroku git:remote -a [zzzzz]
git push heroku master

そして、webアプリケーションサイトのURLにアクセスすると、作成したWebアプリケーションが表示される。はずですが、次のエラー画面が表示されてしまいました。

どのエラーになっているのかを確認するために、ターミナルで次のコマンドを
入力して、ログを確認します。


heroku logs -t

すると、次のようなエラーログが出力されていました。

2015-09-27T00:40:38.142003+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=[zzzzz].herokuapp.com request_id=a4dc2cec-8bdd-4be5-b1fe-0caaf311de15 fwd="223.133.135.59" dyno= connect= service= status=503 bytes=
2015-09-27T00:40:39.245105+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=[zzzzz].herokuapp.com request_id=4ec20557-a3a4-4e84-8fd6-db35ad8ee197 fwd="223.133.135.59" dyno= connect= service= status=503 bytes=

そして、at=error code=H10 desc="App crashed" をググっても
何が原因で、エラーになっているかがわかりませんでした。

ローカルのMac上で正常に動作するのに、Heroku上ではエラーになるんだろうと考えます。
そして、Heroku上でエラーになるのは、やはり環境の設定に誤りがあるはずだ。と思いました。

しばらく、今までの環境作成の手順や作成したexpressのwebアプリケーションのプログラムソースなどを、見てみます。
すると、package.jsonに次のような記述があるのです。

  "scripts": {
    "start": "node ./bin/www"
  },

ということは、ローカルのMac上では、./bin/wwwのプログラムがまず
動作しているのでは?と。であるならば、Procfileの内容が間違っているはずだ。と
思い、Procfileの内容を確認します。
Procfileの内容は、次のようになっています。

web: node app.js

これは、app.jsでなく、./bin/wwwにすれば、Heroku上で、expressのwebアプリケーションが動くかもしれない。と思い、Procfileを次のように、書き換えます。

web: node ./bin/www

そして、ターミナルで、次のコマンドを順番に実行して、expressのwebアプリケーションをデプロイします。

git add .
git commit -m "[yyyyy]"
git push heroku master

そして、WebアプリケーションサイトのURLにアクセスすると、Mac上でexpressのwebアプリケーションを動作させた時と同じ画面が表示されました。








2015年10月3日土曜日

expressアプリ作成及び動作確認

expressのインストールメモの記事の続きですが、Macにexpressをインストール後に
expressのサンプルアプリを作成時のメモです。

アプリを設置するディレクトリに移動して、次のコマンドを実行します。
※[xxxxx]はアプリ名及びアプリ格納ディレクトリです。そして、[xxxxx]ディレクトリは存在してない状態です。事前に[xxxxx]ディレクトリは作成しないでください。

express [xxxxx]

すると、ターミナルにコマンド実行時のメッセージが出力されるのですが
最後の方に次のメッセージが表示されます。

   install dependencies:
     $ cd [xxxxx] && npm install

   run the app:
     $ DEBUG=[xxxxx]:* npm start

なので、指示通りに、次のコマンドを実行します。

cd [xxxxx] && npm install

すると、ターミナルでコマンド実行時のメッセージが出力されます。
その後に、上記の指示どおりに、次のコマンドでアプリを実行します。

DEBUG=[xxxxx]:* npm start

※ ググると node [xxxxx] のコマンドを実行する記事が見つかると思いますが、express 4.13.1 では正しく動作しません。node [xxxxx] のコマンドを実行すると、ターミナルに次のようなメッセージが表示されて、アプリは起動しません。

module.js:333
    throw err;
          ^

すると、ターミナルに次のメッセージが表示されて
ターミナルでの入力できない状態になります。
※controlキー + c で次の状態を終了できます。そして、expressも終了します。

  [xxxxx]:server Listening on port 3000 +0ms

そして、ブラウザ起動して、アドレスバーに次のURLを入力します。

http://localhost:3000/

すると、ブラウザの表示が次のようになっており、expressが動作しています。