Check! Visual Studio Code で Node.js Express をデバッグ!
こんばんは、cloudpack の @dz_ こと大平かづみです。
Prologue - はじめに
Bluemix で Node.js のウェブアプリを作りたくて、まずはローカルマシンに環境を作ってみました。
さらに、Node.jsのデバッグもできる Visual Studio Code のデバッグを試してみます♪
開発環境
- Node.js
- npm
- Express
- Visual Studio Code
- Windows 10
各種インストール
Node.js のインストール
Node.js でインストーラーをダウンロードし、インストーラーを実行します。
Node.js のインストーラーを指示に従いながらインストールします。
Visual Studio Code のインストール
Visual Studio Code でインストーラーをダウンロード・実行し、インストールします。
Express のプロジェクトを作成する
それではさっそく、Express のプロジェクトを作っていきます。
Visual Studio Code の Node.js 開発ガイド を参考に、Express のひな形を作成してくれる express-generator
を利用します。
それでは、PowerShell を起動して、コマンドを実行してみましょう。
# Expressジェネレーターをインストールする
PS> npm install -g express-generator
# 開発用のディレクトリを作成・ディレクトリへ移動する
PS> mkdir nodejsprojects
PS> cd nodejs\projects
# Express のひな形を作成する
PS> express myExpres
create : myExpressApp
create : myExpressApp/package.json
create : myExpressApp/app.js
create : myExpressApp/public
create : myExpressApp/public/images
create : myExpressApp/public/javascripts
create : myExpressApp/routes
create : myExpressApp/routes/index.js
create : myExpressApp/routes/users.js
create : myExpressApp/public/stylesheets
create : myExpressApp/public/stylesheets/styl
create : myExpressApp/views
create : myExpressApp/views/index.jade
create : myExpressApp/views/layout.jade
create : myExpressApp/views/error.jade
create : myExpressApp/bin
create : myExpressApp/bin/www
install dependencies:
> cd myExpressApp && npm install
run the app:
> SET DEBUG=myExpressApp:* & npm start
# プロジェクトディレクトリに移動し、npm インストールを実行する
PS> cd myExpressApp
PS> npm install
[email protected] node_modules\debug
└── [email protected]
[email protected] node_modules\serve-favicon
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
[email protected] node_modules\cookie-parser
├── [email protected]
└── [email protected]
[email protected] node_modules\morgan
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])
[email protected] node_modules\body-parser
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected]
└── [email protected] ([email protected], [email protected])
[email protected] node_modules\express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
[email protected] node_modules\jade
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
# ウェブアプリケーションを開始する
PS> npm start
すると以下のダイアログが表示されるので、通信を許可する対象を選択し、「アクセスを許可する」を押してください。
ブラウザで http://localhost:3000/
にアクセスすると、難なく Express のデフォルトページが表示され、PowerShellではアクセスログが出力されることが確認できました。
> [email protected] start C:\Users\dz\nodejs\projects\myExpressApp
> node ./bin/www
GET / 200 355.828 ms - 170
GET /stylesheets/style.css 200 3.206 ms - 111
ウェブアプリケーション(サーバー)を止めるには、 Ctrl + C
で終了して下さい。
Visual Studio Code でデバッグしてみる
それではお楽しみの Visual Studio Code でデバッグをば!
そのまま PowerShell から VS Code を立ち上げることができます。
PS> code .
Express プロジェクトディレクトリが開かれた状態で、 VS Code が起動します。
開発ガイドに従って、 app.js
にサンプルコードを記述してみます。
....
var app = express();
// ↓↓ ここから ↓↓
var msg = 'hello world';
console.log(msg);
// ↑↑ ここまで ↑↑
....
デバッグする
左のメニューバーのデバッグアイコン(虫っぽいアイコン)をクリックするとデバッグビューが表示されます。
それでは早速!ブレークポイントをつけて、左上のデバッグ開始ボタンを押しましょう。
変数やコールスタックなどもしっかり表示されています。
ということで、あっさりデバッグできてしまいました。
ちなみに、もしデバッグ開始したときに not found 'node' on PATH
(環境変数PATHに node がみつかりません。(うろ覚え)) というエラーが出た場合は、PATHに node が設定されてないので、マシンを再起動するなどして解消してみてください。
Epilogue - おわりに
Visual Studio Code を使い始めたのは、仕事の Mac で IDE を選ぼうとして特にこだわりなく迷ってしまい、リリースされたばかり VS Code に手を出したのがきっかけでした。
今の案件は PHP なのでデバッグはできませんけど、Git の差分表示が結構見やすく、重宝しています。
さらに、0.7 からPHPのコード補完ができるようになったので、 Sublime Text と併用して便利に使っています。
また、余談ですが、VS Code Node.js 開発ガイドには、TypeScript の利用についても書かれていますね。初期のころに少し触って使いやすいと感じたので、また書きたいです。
近況
最近
- Check! Azure オートメーション ランブックで OMS Search API を利用する (和訳)
-
Check! Node.js Express でウェブ開発 with Visual Studio Code ←
Phalcon関連
- 爆速フレームワーク!! Phalcon PHP Framework
- Meet Volt ! Phalcon 謹製テンプレートエンジン Volt - from 第71回 PHP勉強会
- Meet Phalcon! - Phalcon PHPフレームワークを Nginx on Amazon EC2 にインストール!
Webフレームワーク関連
- [初メモ] はじめての Tomcat 〜 つまづいたところまとめ (Java のバージョン指定、起動パラメータ など)
- Check! はじめての CakePHP2 ポイントまとめ 〜 Blog Tutorial を動かそう
- Check! はじめての CakePHP2 〜 bake でプロジェクトスケルトンを利用する
クラウド・インフラ関連
- Check! はじめての fluentd を Amazon Linux で動かしてみる (ログを PHP から送る)
- Check! はじめての Fluentd 〜 IAMロールで Amazon EC2 と S3 間をセキュアに
- Check! はじめての Zabbix インストール on Debian x Amazon RDS
技術ブログ寄稿
cloudpack技術ブログでも、AWS Lambda や 運用ツール Serf に関して記事を書いています。ご興味あれば読んでいただけると嬉しいです!
Author And Source
この問題について(Check! Visual Studio Code で Node.js Express をデバッグ!), 我々は、より多くの情報をここで見つけました https://qiita.com/dz_/items/f24b66f9f464b054dd1b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .