LoginSignup
0
0

More than 5 years have passed since last update.

Digital Ocean でnode.js アプリケーションを実行するとこまでメモ

Last updated at Posted at 2018-10-06

Digital OceanDropletsを作成するところからexpress.jsでAPIサーバーを立てるところまでのメモ。
Digital Oceanとは言ったもののDropletsを作る以降は、OS共通のはず。

目次:
1. Dropletsを作る
2. SSH接続してみる
3. nvmnode.jsをインストールする
4. express.jsアプリケーションを実行する

Droplets を作る

以下のイメージとサイズを選択した。

OS: CentOS 7.5 x 64
MEMORY: 1GB
vCPUs: 1vCPU
SSD DISK: 25 GB
TRANSFER: 1 TB
PRICE: $5/mo, $0.007/hr
region: Singapore

SSHキーもこの画面で設定できる。これでサーバーが生成されて起動する。

SSH接続してみる

ターミナルを開いて $ ssh root@[IPアドレス]
うまく接続できると[root@[サーバー名] ~]#となる。

nvmでnode.jsをインストールする

nvmnode.jsのバージョンマネージャー。直接node.jsをインストールすることもできるけど。今回はnvm経由でインストールする。
インストール方法は、参考のリンクにあるのでそちらを参照したほうが確実。
以下は2018/10現在のインストール手順。

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

これだけだとnvm: command not foundとなったが一度exitして入りなおしたらnvmコマンドが使えるようになった。インストールはbashの起動スクリプトにnvmが追加するだけのため。多分。

参考: GitHub - creationix/nvm: Node Version Manager - Simple bash script to manage multiple active node.js versions

nvmを使ってnode.jsをインストールする。とりあえずローカルのnodeバージョンと同じものをインストールする。$ nvm install 9.2.0
$ node -v でインストールされていることを確認する。

express.jsアプリケーションを実行する

hello worldするだけのexpressアプリケーションを作ってそれをscpで転送して実行してみる。
以下のファイルを転送する。

just-hello/hello.js
import express from 'express';
const app = express();
const port = 8080;

app.get('/api/hello', (req, res) => res.json({ message: 'hello world' }));

app.set('port', port);
app.listen(app.get('port'), () => {
  console.log(`running at port: ${port}`);
});
just-hello/package.json
{
  "scripts": {
    "start": "node -r babel-register hello.js"
  },
  "babel": {
    "presets": [
      "env"
    ]
  },
  "dependencies": {
    "express": "^4.16.3"
  },
  "devDependencies": {
    "babel-preset-env": "^1.7.0",
    "babel-register": "^6.26.0"
  }
}

SCPを使って転送する。$ scp -r /just-hello root@[IPアドレス]:/home/public
サーバーに入ってファイルが転送されていることを確認してみる。

$ ssh root@[IPアドレス]
$ cd /home/public
$ ls

/home/publicディレクトリが生成され中にhello.jspackage.jsonがあるはず。

確認したらnode modulesをインストールしてhello.jsを実行する。

$ npm install
$ npm run start

ブラウザでhttp://159.65.143.104:8080/api/helloにアクセスして{"message":"hello world"}が返ってくることを確認する。

0
0
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
0
0