LoginSignup
7
15

More than 5 years have passed since last update.

Node.jsとExpressを導入して、とりあえずサンプルページを表示するまでにやったこと。

Posted at

CentOS6.4にNode.jsとExpressを導入して、サンプルページを起動するまでにやったことをメモとしてのこします。

とりあえず動かすだけなので特殊な訓練を受けたスタッフがrootで実行しています。
良い子はマネしないでください。

Node.jsのインストール

node.jsをyumでインストールする(centos6.5)
こちらの記事を参考にインストール。
私の環境には既にg++が入っていたのでインストールを省略。

  • リポジトリを追加します
# yum install epel-release
  • node.jsをインストールします
# yum install nodejs npm --enablerepo=epel
  • npmをインストールします
# yum install -y npm --enablerepo=epel
  • プロジェクトフォルダを作成します
# mkdir プロジェクトディレクトリ; cd $_
  • node.jsのプロジェクトファイルを作成します
# npm init
name: (Hogehoge) Hogehoge
Sorry, name can no longer contain capital letters.
name: (Hogehoge) hogehoge
version: (1.0.0)
description: Fugafuga
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

※nameに大文字は使えないそうです。
サンプルページを表示するだけが目的なので、上記のように適当なカンジで入力。

  • プロジェクトファイル(package.json)の確認
# ls

package.json があることを確認します。

Expressのインストール

Expressはnpmをつかってインストールします。
上で作ったpackage.jsonが存在するディレクトリで作業します。

  • Expressをインストール
# npm install express --save
  • Expressで利用するディレクトリやファイルを作る
# express -e ExpressSample
  • ディレクトリやファイルが作られているか確認する
# ls
app.js  bin  package.json  public  routes  views

サンプルの起動

  • app.jsを実行する
# node app.js

module.js:340
    throw err;
          ^
Error: Cannot find module 'serve-favicon'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/www/html/Hogehoge/app.js:3:15)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

無事、怒られる。

そもそも

# node app.js

ではなく、

# node bin/www

で実行できるらしい。

  • 見つからないモジュールがあるようなので、不足しているモジュールをインストールする

まずは不足モジュールを見つけてくれる便利なヤツをインストール

# npm install npm-install-missing -g

そして不足モジュールをインストール

# npm-install-missing
  • 改めてサンプルを起動
# node bin/www
GET / 200 40.421 ms - 207
GET /stylesheets/style.css 200 11.732 ms - 111

無事、起動。
デフォルトではlocalhost:3000で起動するようです。

ブラウザで表示してみる

上の手順はあくまでサンプルページの起動でした。
他の環境からアクセスしてページを表示させてあげるには、httpサーバを利用する必要があります。

特殊なことはなにもなく
1. httpdのインストール
2. httpd.confにVirtualHostを追加
3. VertulHostでポート80へのアクセスを127.0.0.1:3000へプロクシ
4. httpdの起動
とかやってあげれば適当に見れるはずです。
※iptablesを設定している場合は、ちゃんと穴をあけてください。
※このあたりは別にnginxでもApacheでもアクセスを受け付けることができればなんでもよい。(今回は表示するだけなので)

  • ブラウザでアクセスしてみる

node.js+Expressの環境を構築したサーバのIPアドレスをブラウザに入力する。

きっと

Express

Welcome to Express

って表示されるはず。

以上。

7
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
15