MacOsをEI Capitanで、日本語入力をすると勝手に漢字に変換されます。
ちなみに、日本語入力中に、勝手に漢字に変換された文字をひらがなにするには
escキーを押下すれば良いです。
忘れないうちにメモしておきます。
2015年10月4日日曜日
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アプリケーションが表示される。はずですが、次のエラー画面が表示されてしまいました。
どのエラーになっているのかを確認するために、ターミナルで次のコマンドを
入力して、ログを確認します。
そして、at=error code=H10 desc="App crashed" をググっても
何が原因で、エラーになっているかがわかりませんでした。
ローカルのMac上で正常に動作するのに、Heroku上ではエラーになるんだろうと考えます。
そして、Heroku上でエラーになるのは、やはり環境の設定に誤りがあるはずだ。と思いました。
しばらく、今までの環境作成の手順や作成したexpressのwebアプリケーションのプログラムソースなどを、見てみます。
すると、package.jsonに次のような記述があるのです。
"scripts": {
"start": "node ./bin/www"
},
これは、app.jsでなく、./bin/wwwにすれば、Heroku上で、expressのwebアプリケーションが動くかもしれない。と思い、Procfileを次のように、書き換えます。
web: node ./bin/www
そして、ターミナルで、次のコマンドを順番に実行して、expressのwebアプリケーションをデプロイします。
git add .
git commit -m "[yyyyy]"
git push heroku master
Herokuへwebアプリケーションを設置する方法は、HerokuのNode環境作成のメモの記事とほとんど同じ内容です。
が、全く同じ方法だと、expressのwebアプリケーションは正常に動作しませんでした。
その時の、解決方法もメモしておきます。
まず、Webアプリケーションのディレクトリに移動して、次のコマンドを入力します。
※expressアプリ作成及び動作確認の記事で作成した[xxxxx]ディレクトリに移動します。
heroku create --stack cedar
そしたら、webアプリケーションサイトのURLとGitのURLが表示されるので、メモしておく。(メモしておいたほうがいいでしょう。)
※[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=
何が原因で、エラーになっているかがわかりませんでした。
ローカルの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アプリケーションを動作させた時と同じ画面が表示されました。
ラベル:
JavaScript
,
Node
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が動作しています。
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が動作しています。
ラベル:
JavaScript
,
Node
登録:
投稿
(
Atom
)