Node.js + PostgreSQLを使ってアプリケーションを作る(2) Hello World
目次
2, Hello World <- 今回
今回やること
必要なパッケージをnpmを使用してインストールし、Hello World (npmはNode.jsインストール時に同時にインストールされている)
手順
- 1, アプリケーション用ディレクトリを作成
$ mkdir node-myapp && cd node-myapp
- 2, npm initを実行 npm initは、対話的にNode.jsのプロジェクトの初期設定をし、package.jsonにその設定を書き込みます。 npmはNode.jsのパッケージ管理ツールで、package.jsonはその設定ファイルです。 別の環境でプロジェクトを開始するときも、package.jsonがあれば依存しているパッケージを簡単にインストールすることができます。 entry pointを変更していることに注意してください。
$ npm init name: (node-myapp) version: (1.0.0) 0.0.1 description: sample node app entry point: (index.js) app.js test command: git repository: keywords: author: license: (ISC) About to write to /home/nodeuser/node-myapp/package.json: { "name": "node-myapp", "version": "0.0.1", "description": "sample node app", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes) yes
これでpackage.jsonが作成されました。
- 3, 必要なパッケージをインストール npmを使って必要なパッケージをインストールします。 このとき、--saveオプションや--save-devオプションを利用すると、インストールと同時にpackage.jsonにパッケージを追加してくれます。
$ npm install --save express $ npm install --save-dev node-dev
今回はNode.jsのフレームワークであるExpressと、開発用のnode-devパッケージ(ファイルの変更を検知したら自動でプログラムを再起動してくれる)を追加しました。
- 4, Hello World アプリケーションディレクトリ内にapp.jsを作成して、以下のコードを追加します。
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
保存したら、
$ ./node_modules/node-dev/bin/node-dev app.js
でアプリケーションを実行します。
$ curl http://localhost:3000
とすると、「Hello World!」と表示されます。
- 5, ホストマシンからアクセス ホストマシンからゲストマシン上のアプリケーションにアクセスするには、ポートフォワーディングの設定を行う必要があります。 Vagrantfileに
config.vm.network :forwarded_port, guest: 3000, host: 3000
を追加し、
vagrant reload
を実行します。 その後、ゲストマシン内でアプリケーションを実行してから、 http://127.0.0.1:3000/にアクセスして確認します。
ここまでのコードは
に公開してあります。
Node.js + PostgreSQLを使ってアプリケーションを作る(1) 環境構築
Node.jsを使ってデータベースアクセスを伴う簡単なアプリケーションを構築しましたので、その手順をまとめておきます。
前提
OS:Ubuntu 16.04
Node.js: v6.9.2(LTS)
フレームワークとしてExpressを使用
データベースにはPostgreSQLを使用
(Herokuにデプロイする予定なので)
今回やること
VirtualBox+VagrantBoxを利用してUbuntuを入れ、Node.jsをセットアップ
手順
- 1, Ubuntu16.04環境を作成
ホストマシン上で
$ mkdir ubuntu && cd ubuntu $ vagrant init bento/ubuntu-16.04
また後にプライベートネットワークを使うので、
$ vim Vagrantfile
としてVagrantfileを編集し、「config.vm.network "private_network", ip: "192.168.33.10"」の行をコメントアウトしておきます。 また、bento/ubuntu-16.04だとssh接続が出来ないことがあるようで (Timeout error during `vagrant up` · Issue #682 · chef/bento · GitHub) この場合、Vagrantfieに
config.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.customize ["modifyvm", :id, "--cableconnected1", "on"] end
を追加します。
編集が完了したら
$ vagrant up
で立ち上げます。(初回はBoxのダウンロードから行うので時間がかかります)
立ち上がったら
$ vagrant ssh
で接続します。 接続したら今後の作業を行うユーザー(nodeuser)を追加します。
$ sudo adduser nodeuser $ sudo gpasswd -a nodeuser sudo $ sudo su - nodeuser
- 2, Node.jsをインストール
Node.jsのバージョン管理ツールであるnvm(https://github.com/creationix/nvm)を使ってNode.jsをインストールします。
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash $ source ~/.bashrc $ nvm install v6.9.2
node -vでv6.9.2が表示されれば成功です。
3ヶ月ほど二人分の弁当を作って得られた知見
会社の周囲のランチが高いので普段は弁当を作って持って行っている。
3ヶ月ほど弁当を続けた結果、自分用のノウハウが溜まったので書き残しておく。
1, 工程
おかず作りはすべて週末で行っておく。
朝におかずを作るような時間の余裕はない。
朝は原則詰めるだけだ。
(おかずが切れたなどの非常時においてはこの限りでない)
2, おかずの種類
おかずは基本冷凍食品を使わずに作り置きにしている。
これは信条的なものではなく、単に昔食べた冷凍食品がマズくて今も使えないだけである。
おいしい冷凍食品を発見したら使うことも辞さない。
おかずの構成として、
主菜一品+副菜二〜三品としている。
主菜はたいてい肉・魚を持ってくるので、
副菜には野菜を使ったものを配置する。
また、おかずは
・緑のもの(ほうれん草、ブロッコリー、アスパラなど)
・黄、赤、オレンジのもの(人参、かぼちゃ、トマトなど)
の二種類があると彩りがよくなるので、副菜は
緑系+黄色系+ごはんの友系
をつくっておくとバランスがよい。
3, 調理にあたって
調理自体は週末、というか日曜の2時間ほどでやるので、
とにかく時間がかからないようにする。
レンジを使えるものはレンジで、
煮るものは先に煮ておいて、火にかけている間に次の材料を切るなどする。
また出汁を取るのも面倒なので、たいてい白だしを使う。
白だしはすばらしい。
4, 詰めるのにあたって
朝は時間が惜しいので、冷蔵庫から出したおかずを弁当箱にひたすら詰めるだけにする。
アルミのしきりなどもあまり使わない。あれは取るときに余計な分までひっついてきたりして面倒だ。
ただし、汁気が漏れるとよくない(何回かやらかした)ので、
汁気のあるおかずは詰める前に斜めにしたところにおいて、できるだけ汁を切っておく。
5, 一週間分の例
先週は下記のものをつくった。
・豚肉の揚げ焼き(細切れ肉を二〜三枚重ねて衣をつけ揚げ焼きにする。冷凍可能。主菜)
・牛肉のしぐれ煮(牛薄切り肉を細かく切って甘辛煮にする。主菜)
・菜の花のからし和え(茹でた菜の花を白だしでといた辛子であえる。副菜、緑系)
・アスパラのからし和え(茹でたアスパラを白だしでといた辛子であえる。副菜、緑系)
・人参サラダ(細切りにした人参をレンジで火を通し、マスタードとはちみつと塩で適当に味をつける。副菜、黄色系)
・かぼちゃの煮物(切って煮る。副菜、黄色系)
・切り干し大根の煮物(戻して人参、油揚げと白だしで煮る。副菜、ごはんの友系)
基本的に切って火を通して味をつけるという単純な工程でできるものなので、それほど時間はかからずに済む。
また、主菜は一週間分より多めにつくっておいて、冷凍しておけば
あとで楽ができる。
コンピュータシステムの理論と実装読んでる
コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
- 作者: Noam Nisan,Shimon Schocken,斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/03/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
基礎的なところからの知識が抜けてるなあと思うのでこういう感じの本を読んでいくことにした
現在4冊たまっている
章の終わりに練習問題があるので、その自分的な回答を書いていこうと思う
今はNandでXorとか作っている