Node.jsでHello World
実際にアプリケーションを作成するまえに、まずはHello Worldアプリケーションを通じてNode.jsのCLIアプリケーションの基本を学びましょう。
Hello World
まずはNode.jsでHello Worldアプリケーションを作ってみましょう。
具体的には、実行すると標準出力に"Hello World!"という文字列を表示するCLIアプリケーションを記述します。
はじめに用意するのは、アプリケーションのエントリポイントとなるJavaScriptファイルです。
適当なディレクトリにmain.js
という名前でファイルを作成し、次のように記述します。
console.log("Hello World!");
Webブラウザの実行環境では、console.log
関数の出力先はブラウザのコンソールでしたが、
Node.js環境では標準出力になります。
このコードは、標準出力にHello World!
という文字列を出力するものです。
JavaScriptのコードをNode.jsで実行するには、node
コマンドを使用します。
次のコマンドを実行して、Node.jsでmain.js
を実行します。
$ node main.js
Hello World!
Node.jsの基本は、エントリポイントとなるJavaScriptファイルを作成し、そのファイルをnode
コマンドの引数に渡して実行するという流れです。
また、WebブラウザのJavaScriptと同じく、コードは1行目から順に実行されます。
Node.jsとブラウザのグローバルオブジェクト
Node.jsはChromeと同じV8エンジンを利用しているため、ECMAScriptで定義されている基本構文はほとんどブラウザと同じように使えます。 ただし、ブラウザ環境とNode.js環境では利用できるグローバルオブジェクトが違うため、アプリケーションを開発するときにはその違いを理解しなくてはなりません。
ECMAScriptで定義されているグローバルオブジェクトはブラウザとNode.jsどちらの環境にも存在します。
たとえばBoolean
、String
などのラッパーオブジェクトや、Map
、Array
、Promise
のようなビルトインオブジェクトがそれにあたります。
Webブラウザ環境のグローバルオブジェクトはwindow
オブジェクトですが、Node.jsではglobalと呼ばれるオブジェクトがグローバルオブジェクトになります。
ブラウザのwindow
オブジェクトにはたとえば次のようなプロパティや関数があります。
一方、Node.jsのglobal
オブジェクトにはたとえば次のようなプロパティや関数があります。
それぞれのグローバルオブジェクトにあるプロパティなどは、同じ名前でグローバル変数や関数としてアクセスできます。
たとえばwindow.document
プロパティは、グローバル変数のdocument
としてもアクセスできます。
また、ECMAScriptで定義されたものではありませんが、ほぼ同等の機能と名前をもつプロパティや関数がブラウザとNode.jsどちらにもある場合もあります。 たとえば次のようなものです。
- Console API
setTimeout
関数
これらを踏まえた上で、次のセクションからCLIアプリケーションの開発をはじめていきましょう。