覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

Node.js で Hello, World

Node.js をインストールしましたので、とりあえずは Hello World やっておきましょう。


REPLでHello World

Node.js は REPL を備えていますので、REPL使ってとりあえずやってみます。

ターミナルで node を実行すると Node.js の REPLが起動します

$ node
> 


REPLで以下を実行してます

> console.log('Hello, World')
Hello, World
undefined

無事に、Hello World できました。


これだけだと寂しいでの ホスト名も出力してみました

> os.hostname()
'yukinoMBP'


REPLを終了させるには Control + C を2回実行するか、 .exit と入力します

> .exit
$ 


プログラム書いてHello World

hello.js というファイルを用意して以下を記述して保存します。

console.log('Hello, World')

var os = require('os')
console.log(os.hostname())


ターミナルで以下を実行します

$ node hello.js 

実行結果

$ node hello.js 
Hello, World
yukinoMBP


Web サーバでHello World

次は簡易的なWebサーバ起動して、Hello World してみます。


hello-server.js というファイルを用意して以下を記述して保存します。

var http = require('http')
var os = require('os')

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'})
    const host = os.hostname()
    res.end(`Hello World ${host} \n`)
}).listen(8989)


ターミナルで以下を実行します

$ node hello-server.js 


Webブラウザで http:127.0.0.1:8989 にアクセスします

f:id:nini_y:20181114220019p:plain

”Hello, World yukinoMBP” と表示されていることがわかります。


まとめ

とりあえず、Hello, World やってみましたが、どれでやるにしても簡単にできますね。良いことです。



関連エントリ

macOS に入れてたNode.js(npm)をアップデートする

以前なにかの作業の時にnodebrewを使って、Node.jsをmacOS(npm)にインストールしました。

現在インストールしているものより、新しい安定板がリリースされているのでアップデートすることにします。

正直手探りでやってる感があるので、このやり方が正当なやり方なのかイマイチよくわかってません。


nodebrewをアップデートする

nodebrew でインストール済みの Node.js のバージョンのリストを確認し、現状のバージョンを確認してみました。


うちの環境では以下の感じでした

$ nodebrew ls
v10.6.0

current: v10.6.0


その後、nodebrew 自体を最新版にアップデートするコマンド nodebrew selfupdate を実行します

$ nodebrew selfupdate
Fetching nodebrew...
Updated successfully


Node.js(npm)の最新安定板のインストール

最新安定板をインストールするために nodebrew install stable を実行します

$ nodebrew install stable
Fetching: https://nodejs.org/dist/v10.13.0/node-v10.13.0-darwin-x64.tar.gz
######################################################################## 100.0%
Installed successfully


最新安定板(このタイミングでは、10.13.0)がインストールされていることを nodebrew ls で確認します

$ nodebrew ls
v10.6.0
v10.13.0

current: v10.6.0

ただし、このタイミングでは利用されているのは 10.6.0 です。


利用するバージョンの切り替え

nodebrew use stable を実行して最新安定板のバージョンを利用するようにします。

$ nodebrew use stable
use v10.13.0


その後に、node -vnpm -v の結果を確認します

$ node -v
v10.13.0
$ npm -v
6.4.1

最新安定板が利用されるようになっています。


というわけで無事にNode.jsのアップデートができました。



関連エントリ

Node.js (npm) をWindowsにインストールする

最終的に、Electron でのアプリ開発がしたいわけなんですが、
その開発環境構築のためにも何はさておき Node.js (npm) をインストール必要があるので、インストールしました。

正直誰でもできるレベルのものですが、念のために手順をメモしておきました。


(今回のタイミングでは、Node.js 10.13.0 (同梱 npm 6.4.1) をインストールすることになりました)


インストーラのダウンロード

Node.jsのサイト(以下URL)にアクセスします。

https://nodejs.org/ja/

アクセスしたページ内の LTS の方をクリックします

f:id:nini_y:20181111110617p:plain


クリックすると、インストーラのダウンロードが始まります。


インストール

インストーラのダウンロードが完了すると以下のようなファイルが存在しているのでダブルクリックします

f:id:nini_y:20181111110819p:plain


「Next」ボタンをクリックします

f:id:nini_y:20181111110835p:plain


承諾のチェックを入れて、「Next」ボタンをクリックします

f:id:nini_y:20181111110927p:plain


「Next」ボタンをクリックします

f:id:nini_y:20181111111008p:plain


「Next」ボタンをクリックします

f:id:nini_y:20181111111136p:plain


「Next」ボタンをクリックします

f:id:nini_y:20181111111145p:plain


「Install」ボタンをクリックします。これでインストール処理が開始されます。

f:id:nini_y:20181111111225p:plain


インストール処理が開始されるので、終わるのをしばし待ちます。

f:id:nini_y:20181111111250p:plain


「Finish」ボタンをクリックします。これでインストール完了です

f:id:nini_y:20181111111307p:plain


インストール後の確認

今回のインストール手順であれば、Node.jsもnpmもPathが通った状態になっています。

コマンドプロンプトを開いて以下を実行してバージョンを確認しています。


Node.jsのバージョン確認

node -v

npmのバージョン確認

npm -v


今回のタイミングでは node -v の結果が "v10.13.0"、 npm -v の結果が "6.4.1" となりました

f:id:nini_y:20181111111320p:plain


これで、Node.js (npm) のインストールは完了です

Go言語 - システム情報を取得する

Golangで、システム情報というかOSのuptime(稼働時間)が取得したかったんですが、
Go sigarを利用すると楽そうだったのでお世話になります。


とりあえず、ライブラリのダウンロードを行います

go get github.com/cloudfoundry/gosigar


uptimeとか取得してみる

そして早速サンプルコードですが、uptimeだけ取得しても寂しかったので、ロードベレージやメモリの使用率なども取得してみました。


■サンプルコード

package main

import (
    "fmt"

    "github.com/cloudfoundry/gosigar"
)

func main() {
    uptime := sigar.Uptime{}
    uptime.Get()

    // uptime
    fmt.Printf("Uptime: %s \n", uptime.Format())

    avg := sigar.LoadAverage{}
    avg.Get()

    // ロードアベレージ(1分、5分、15分)
    fmt.Printf("Load average: %.2f, %.2f, %.2f\n", avg.One, avg.Five, avg.Fifteen)

    mem := sigar.Mem{}
    mem.Get()

    // メモリ使用量
    fmt.Printf("Mem(MB): total=%d, used=%d, free=%d\n", formatMB(mem.Total), formatMB(mem.Used), formatMB(mem.Free))
}

func formatMB(val uint64) uint64 {
    return val / 1024 / 1014
}


■実行結果

Uptime: 46 days, 11:56
Load average: 1.52, 1.58, 1.82
Mem(MB): total=16545, used=9082, free=7463


まとめ

簡単にuptime等、一部のシステム情報を無事に取得することができました。



関連エントリ

Windows 10 - All Users のスタートアップフォルダを開く

Windows 7 だとAll Users のスタートアップフォルダの場所にExplorerなんかでも簡単に行きつけるんですが、Windows 10 だとすぐ迷子になってしまいます(行きつけません)。

というわけで、今後迷子にならないためのメモです。

場所は通常であれば以下パスになります

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp


ふー、これさえメモっておけば一安心。

と、これだけでも良かったんですが、なんとExplorerで以下を入力してEnter押すだけでも行きつけるようです。全然知らなかった。
(それも、Windows 7でも利用可能!)

shell:Common Startup


実際やってみた感じは以下のようになりました

Explorer開いて、shell:Common Startupと入力してEnterキー押すと f:id:nini_y:20181106232548p:plain

ばっちり All Users のフォルダが開かれました。 f:id:nini_y:20181106232934p:plain


楽だ。これからは、これでやっていこう