ブラウザ以外への指示をするプログラミングの始まり 〜Node.js ことはじめ〜
プログラム自学案内の18回目です。前回まででHTML, CSS, JavaScript の案内が終わりましたので、今回からNode.js を案内します。前回までの記事はこちらです。
イントロ:広がる世界
これまで案内した技術、 HTML, CSS, JavaScript は、すべて、Webブラウザへ指示をするための技術でした。
ところが、今回紹介する Node.jsを使うと、「Webブラウザ以外のモノへの指示」が出来るようになります。
これまでWebブラウザ相手にプログラミングで会話をしていたところ、その話し相手が、ぐんと無限に広がるわけですね。しかも、命令の構文は、すでに学んだJavaScript言語なのです。
Node.jsとは
Node.js( https://nodejs.org/ )は、ブラウザ無しで JavaScriptのコードを動かせるように、Webブラウザから「JavaScriptのコードを理解、実行する機能(JavaScriptエンジン)」を取り出したものです。これを、JavaScriptの実行環境、と言います。
Node.jsをインストールする
とにかく、Node.jsをさわってみましょう。そのためには、Node.jsをインストールしてください。
第2回の記事でchocolateyをインストールしている方は、コマンドプロンプトを管理者として起動し、以下のコマンドを実行すると、インストールできます。
choco install -y nodejs
第2回の記事でhomebrewをインストールしている方は、ターミナルを起動し、このコマンドでインストールできます。
brew install node
それ以外の方は、Node.jsのサイト(https://nodejs.org/ja/download/) や、ネットでインストールの方法を調べて、インストールしてください。
どの方法でも、インストールされたことを確認するためには、いちどコマンドプロンプトやターミナルを再起動したあと、次のコマンドを打ってください。
node -v
nodeのバージョン番号が表示されたらOKです。
Hello Node.js
まずは以下のコードをコピペして"script.js" を作ります。 これまでの記事と異なり、HTMLファイルが要らないというのがポイントです。
script.js
const [node, script, ...names] = process.argv
names.forEach(flatter);
if (names.length == 0){
say('"node script.js TARO HANAKO" なんて感じに名前を入れて');
}
function flatter(name) {
const praise_words = ['素敵', 'スマート', 'オシャレ'];
let comment = '';
for (word of praise_words) {
comment = comment + `${name}さんは${word}ですね\n`;
}
praise_words.forEach(word => {
comment = comment + `${name}さんは本当に${word}ですね\n`;
});
for (let i = 0; i < praise_words.length; i++) {
comment = comment + `${name}さんはつくづく${praise_words[i]}ですね\n`;
}
say(comment);
}
function say(comment) {
console.log(comment);
}
前々回、16回目の記事で紹介したコードとほとんど変わりません。 違いを見比べてみてください。ポイントは、Webブラウザとのやり取りではないため、今回のスクリプトではDOMが使われていないという点。そして、目新しいフレーズは1行目の "process.argv" くらいです。
スクリプトを動かす
スクリプトを動かすのに、ブラウザは不要です。 代わりに、コマンドプロンプトやターミナルでこう入力します。
node script.js
すると、
と表示されるはずです(「Error : Cannot find module」というエラーメッセージが出た場合の対処方法は後述します)。
さて、 script.js の内容から想像がつくと思いますが、このプログラムは、つづけて名前を入れると、その名前をおだてます。試してみてください。
node script.js JIN SUGA J-HOPE RM JIMIN V JUNGKOOK
node script.js RAN SUE MIKI
node script.js CHOSUKE KOJI BOO CHA KEN
14回目の記事の課題を応用すれば、同じ要領で、ブラウザなしで、BMIの計算もさせることが出来そうですね。ぜひ、試してみてください。
Error : Cannot find module の場合
こんなのが出たかもしれません。エラーメッセージはどうも、目当てのscript.jsが見つからないと言っています。
最も手っ取り早いのは、script.jsの絶対パスと呼ばれるものを指定することです。絶対パスは、Windowsの場合 "C:\xxxx\xxxxx\script.js" という感じの、Macの場合は"/xxxx/xxxxx/script.js" という感じの文字列になります。「ファイル 絶対パス 調べる Windows」などのキーワードで検索して、作ったscript.jsの絶対パスを取得してください。
絶対パスが分かったら、このように絶対パスを指定することで、スクリプトを動かせます。
node "C:\xxxx\xxxxx\script.js"
node "C:\xxxx\xxxxx\script.js" KOJI BOO CHA
世界を広げるためには
記事冒頭では、このように大風呂敷を広げました。
ところが、今回の記事のプログラムは、動きとしてはむしろ、いたって地味。できたことは、ターミナルでの文字のやり取りでしかありませんでした。
では、もっと世界を広げ、派手なことをするにはどうすればいいのでしょう? じつは、他の人が作ったプログラムを召喚する方法を学べば、簡単に世界を広げられるのです。それが、このあとの記事で紹介予定の、Node.jsがもつ二つの呪文、"npm" と "require" です。
まとめと次回予告
今回の記事ではNode.jsを使ってJavaScriptのプログラムを走らせ、Webブラウザの世界から一歩外に飛びだしました。
次回の記事では、他人が作ったプログラムの召喚術を紹介、とさっそくいきたいところですが、そのまえにファイルシステムとターミナル、コマンドプロンプトの基礎を紹介します。すこしつまらない話ではあるものの、これを覚えるのは、npmを使うために、避けて通れない試練なのです。
npmはそのあとで、取り上げます。
#コラム #プログラミング #初心者 #独学 #案内 #JavaScript #Node.js
この記事が気に入ったらサポートをしてみませんか?