node.js:「Node.js command prompt」と「Node.js」はどう違う?

ラベル: ,

JavaScriptでJavaDocのようにコメントを出力するJSDoc3を使うのにnode.jsをインストールしてみました。JSDoc3のインストールにはさらにgitのインストールもしないといけないことがわかったので面倒になって投げ出してしまいました。そのとき学習したnode.jsについての記録です。

node.js 0.10.26をインストールした


既にnode.jsはインストールしてあったのですが、このブログを書き始める前でしたのでインストール手順は記録していないし記憶もありません。

第1回 Node.jsとは:基礎から学ぶNode.js|gihyo.jp … 技術評論社がブックマークに残っていたのでこのサイトを参考にインストールしたのだと思います。

Windows版はインストーラがついているのでnode.jsにある「INSTALL」をクリックしてダウンロードされるmsiファイルを実行するだけでいけます。

私のパソコンに入っていたのは0.8.17でした。

ということで新たにnode.jsから「INSTALL」をクリックしてダウンロードされたnode-v0.10.26-x64.msiをインストールしなおしました。

私の環境はWindows7 64bitです。

0.8.17は32bit版でC:\Program Files (x86)にインストールしてあったのでコントロールパネルからアンインストールしておきました。

node-v0.10.26-x64.msiを実行すると64bit版はC:\Program Files\nodejsにインストールされました。

「Node.js command prompt」でnodeを実行した状態=「Node.js」



スタート→すべてのプログラム→Node.jsをみると「Node.js command prompt」と「Node.js」の二つがあることがわかります。

どうちがうのでしょう?

「Node.js command prompt」は以下が実行されています。
C:\Windows\System32\cmd.exe /k "C:\Program Files\nodejs\nodevars.bat"
C:\Program Files\nodejs\nodevars.batのなかをみてみると単にnode.jsに関するパスを設定しているだけのようです。

「Node.js」はnode.exeが実行されます。
"C:\Program Files\nodejs\node.exe"
If you type: node example.js that will call node environment and will execute file in that environment.
Although, running node.exe is the same as typing node in cmd.
Run Hello world from node.js command prompt in windows 7 - Stack Overflow
うーん、わかったような感じもしますがnode.exeが何をするのか忘れてしまったのでいまいちピンときません。

思い出しました!

「Node.js command prompt」はWindowsのコマンドウィンドウなのでWindowsのコマンドを実行します。

「Node.js」で開くコマンドウィンドウはJavaScriptを実行します。

Run Hello world from node.js command prompt in windows 7 - Stack Overflowの質問者の例を使ってやってみます。
console.log("Hello world!");
これを入力したC:\test.jsを作ります。

「Node.js command prompt」を実行するとnode.jsのパスを設定したコマンドウィンドウが開きます。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>

node C:\test.jsと入力してtest.jsを実行します。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node C:\test.js
Hello world!

C:\Users\Administrator>

console.log("Hello world!");がちゃんと実行されていますね。

今度は引数無しでnodeと入れてみます。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node C:\test.js
Hello world!

C:\Users\Administrator>node
>

プロンプトが変わりました。

これが「Node.js」を実行して開いたプロンプトと同じ状態になります。

このプロンプトを抜けるコマンドがなかなかわかりませんでした。

exitもbyeもダメです。

vallog: node.js を終了に答えがありました。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node C:\test.js
Hello world!

C:\Users\Administrator>node
> process.exit();

C:\Users\Administrator>

process.exit();で脱出成功。

(H26.3.7追記。実はもっと簡単に抜ける方法をコメントで教えていただきました。".exit"で抜けれます。exitの直前にピリオド"."がついています。)

Ctl+cを2回しても脱出できます。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node
>
(^C again to quit)
>

C:\Users\Administrator>

「Node.js」のプロンプトでC:\test.jsを実行する方法はrequire('c:/test.js');です。

require('c:\test.js');はダメでした。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node
> require('c:/test.js')
Hello world!
{}
>

Hello world!の次に表示される{}はなにか知りません。

ちなみに1回require('c:/test.js');を実行してHello world!を表示させた後はrequire('c:/test.js');を実行しても{}しか表示されません。

Your environment has been set up for using Node.js 0.10.26 (x64) and npm.

C:\Users\Administrator>node
> require('c:/test.js')
Hello world!
{}
> require('c:/test.js')
{}
>> require('c:/test.js')
{}
>

またnode.js使う機会があれば調べたいと思います。

参考にしたサイト


node.js+JSDoc3によるインラインAPIドキュメントの生成
Windowsではgitのインストールが必要です。

第1回 Node.jsとは:基礎から学ぶNode.js|gihyo.jp … 技術評論社
node.jsのインストールから解説してあります。

node.js
node.jsのインストールサイト。

Node.js 日本ユーザグループ
日本語でインストールサイトもあるしマニュアルも用意されています。

Run Hello world from node.js command prompt in windows 7 - Stack Overflow
「Node.js command prompt」と「Node.js」の違い。

vallog: node.js を終了
nodeから抜ける方法。
PR

2 件のコメント:

  1. > .exit でコマンドを抜けることができますよ。

    > .help
    .break Sometimes you get stuck, this gets you out
    .clear Alias for .break
    .exit Exit the repl
    .help Show repl options
    .load Load JS from a file into the REPL session
    .save Save all evaluated commands in this REPL session to a file
    >

    返信削除
    返信
    1. ありがとうございます。
      exitでは無理と書いてあるのになぜ?と最初思ってしまいました。
      exitの前にピリオドをつけるのですね。
      うまくいきました。
      本文にも追記させていただきます。

      削除