node.jsではexpressというWEBサーバーが簡単に構築できます
またジェネレーターを使えばある程度自動的にソースも展開してくれます
だけど・・・理解を深めるためにゼロからexpressを使ってWEBサーバーを作りたいと思います
前提
・node.js(npm)の環境については以下の記事を参考にしてください
masalib.hatenablog.com
・root権限で作業をしています。rootではない場合はsudoコマンドで作業する形になります
プロジェクトのFolderを作成
cd /var/node/ mkdir xmlsampleapp cd xmlsampleapp
package.jsonを作成する
cd /var/node/xmlsampleapp npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (xmlsampleapp) version: (1.0.0) description: test entry point: (index.js) test command: git repository: keywords: author: masalib license: (ISC) MIT About to write to /var/node/xmlsampleapp/package.json: { "name": "xmlsampleapp", "version": "1.0.0", "description": "test", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "masalib", "license": "MIT" }
initの所はサンプルプログラムなので適当に記述する
is this ok ?と聞かれるのエンターを押す
dependencies(依存)の設定をする
nodeのモジュールを一つ、一つインストールしてもいいのですが
めんどくさいので一気にいれてしましたと思います
vi /var/node/xmlsampleapp/package.json //scriptの下に追加する "dependencies": { "body-parser": "~1.18.2", "cookie-parser": "~1.4.3", "debug": "~2.6.9", "express": "~4.15.5", "jade": "~1.11.0", "morgan": "~1.9.0", "pretty-data" : "latest", "serve-favicon": "~2.4.5" }, //latestは最新という意味です
保存後にモジュールのインストールをする
npm install
依存性があるものがインストールされる
mainがindex.jsになっているのでファイル作成する
vi /var/node/xmlsampleapp/index.js console.log("hello,world") //1行目に追加する
追加後にnode.jsが動くのか確認する
$ cd /var/node/xmlsampleapp/ && node index.js
hello,world
となる
hello,worldとコンソールログが表示されたのでnode.jsは動いている事が確認できた
expressを設定する
これだとwebサーバーとしては動かないのでindex.jsを修正する
$ vi /var/node/xmlsampleapp/index.js
var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('hello world express'); }); //3000は既につかっているので3001 app.listen(3001);
ブラウザでアクセスすると表示されています
修正時にexpressを自動ロードする
ちなみにプログラムを修正してリロードしても反映されません
プログラム監視してくれるモジュールをインストールしたいと思います
$ npm install -g nodemon
起動は簡単でnodeになっている部分をnodemonにするだけです
nodemon index.js [nodemon] 1.15.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node index.js` [nodemon] restarting due to changes... [nodemon] starting `node index.js` hello world access
これで修正時に自動的にリロードされるようになった
はじめてのNode.js -サーバーサイドJavaScriptでWebアプリを開発する-
- 作者: 松島浩道
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/03/13
- メディア: 単行本
- クリック: 15回
- この商品を含むブログ (5件) を見る