Node.js入門 インストールとHelloWorld

皆さんこんにちは。レモンティーです。

今回はNode.js入門です。
インストールしてHellow,Worldを表示させてみます。

Node.jsとは

Node.jsはJavascriptの実行環境です。Javascriptのスクリプトが書かれた.jsファイルは実行ファイルではないのでそれだけでは実行できません。実行するための環境が必要です(jsファイルから実行ファイルをつくることもできるようですがスクリプトのまま実行環境を整えて実行することの方が多いと思います)。Windowsで動作するJavascriptの実行環境はいろいろありますが、そのうちの一つがNode.jsというわけです。
他の環境や、なぜNode.jsがいいのかについてはもし気になるならこちらのリンクをどうぞ。
今すぐ使えるJavaScriptを実行する環境まとめ - Qiita
Node.jsとWSHって何が違うの? - Qiita


Node.jsは以下の公式サイトから無料でDL、使用できます。
nodejs.org


ただし、頻繁に更新されるため
最初からバージョン管理ツールでインストールすると後々楽なようです。
https://qiita.com/satoyan419/items/56e0b5f35912b9374305

Hello World

インストールが済んだら適当な場所にsampleというディレクトリを作成して
その中にindex.jsというファイルを作って以下のようにかいてみてください。

index.js

console.log("Hello World!");

これを実行するにはコマンドプロンプト等を開いて以下のコマンドを実行します
(もちろんindex.jsファイルのあるsampleディレクトリで実行する必要があります。ディレクトリの移動についてはこちら

node index.js

するとコマンドプロンプトに

Hello World!

と表示されたと思います。index.jsにかかれたJavascriptのコードが実行されたわけですね。
Node.jsをインストールしただけでnodeというコマンドが使えるようになったのは、インストーラまたはバージョン管理ツールがパスを通してくれたからです。コンピューターはカレントディレクトリ(今居るディレクトリ)に無いプログラムを実行しろと言われても困ります。そんな時に探しに行く候補のディレクトリのpathをあらかじめ登録してあげる必要があります。今回でいうと、node.exeがあるディレクトリですね。これを「パスを通す」と言います。今回は自動でやってくれました。
ちなみに現在登録されているpathを確認するにはコマンドプロンプトにpathと入力すればOKです。登録されているpathが;区切りで表示されます。また、where nodeと入力すればどこにnode.exeがあるかを表示できます。

モジュール

Node.jsでは他の言語でいうライブラリのような感じでモジュールというものがあります。標準ライブラリのように最初から入っているビルトインモジュールと、サードパーティがつくっているモジュールがあります。

ビルトインモジュール

ビルトインモジュールの一つで、ファイルシステムを扱えるfsモジュールを使ってみます。

index.js

const fs = require('fs');

const data = "Hello World!";
fs.writeFileSync("hoge.txt",data);

index.jsをこのようなコードに書き換えて以下のコマンドで実行します

node index.js

すると突然hoge.txtなるファイルが作成されたと思います。開くとHello Worldと書いてありますね。
このように簡単にモジュールを使用することができます。

npm

サードパーティーのモジュールを使用するにはnpmというパッケージマネージャを使用します。これを使えば単純なコマンドでパッケージのインストールから依存関係の解決までやってくれます。Node.jsとセットでインストールされるので追加のインストール等も不要です。さっそく使ってみます。

まず以下のコマンドでパッケージを初期化しpackage.jsonを生成します。npmでパッケージを管理するにあたっては、sampleディレクトリも一つのパッケージと見なされ、これからインストールするパッケージはsampleが依存しているパッケージという扱いになるわけですね。実際、package.jsonにはまさにsampleパッケージとその依存関係の情報が書き込まれていきます。
yというオプションを指定していますがこれは初期化時の質問に全部yesで答えるという意味です。今はそれでOKです。

npm init -y

これでsampleにどこかの誰かがつくったパッケージをインストールできるようになりました。さっそくhttpリクエストが送れるrequestモジュールを入れて使ってみます。
インストールのコマンドはこれだけです。

npm install request

index.jsを以下のように書き換えて使ってみます。

index.js

const request = require('request');

request("https://example.com", (err,res,body) => {
    console.log(body);
});


これを実行するとちょっと時間がかかってから以下のようなhtmlのテキストが表示されたと思います。

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 50px;
        background-color: #fff;
        border-radius: 1em;
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        body {
            background-color: #fff;
        }
        div {
            width: auto;
            margin: 0 auto;
            border-radius: 0;
            padding: 1em;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is established to be used for illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

https://example.comへのリクエストが成功したわけですね。

おしまい

今回はこれでおしまいです。

www.sawalemontea.com