web-dev-qa-db-ja.com

Node.jsアラートによりクラッシュが発生する

Node.jsアプリを作成しようとしています

alert('Sample Alert');

プログラムがクラッシュします。 Nodeは言う

ReferenceError:アラートは定義されていません

その後、終了します。通常のhtmlページでjavascriptを実行するときにalert関数を使用できるので、これがなぜなのか理解できないのですが...これはnode.jsで使用しなければならない別のモジュールですか?

31
gtmtg

alert()関数は、ブラウザーwindowオブジェクトのプロパティです。実際にはJavaScriptの一部ではありません。これは、その環境でJavaScriptコードが使用できる機能にすぎません。

console.log("Hello World");を試してください

60
Pointy

alert()関数は、ブラウザウィンドウの特別なコンテキストでJavaScriptを実行する場合にのみ使用できます。 windowオブジェクトを介して利用できます。

Node.jsは、デスクトップアプリケーションを(直接)作成するためのものではありません。主に、サーバー側のJavaScriptアプリケーションを作成するためのものです。真のデスクトップアプリケーションを開発する場合は、次のフレームワーク/パッケージ(およびそれ以上)を使用できます。

  • 電子
  • NW.js (以前は、node-webkit)

    NW.jsは、Chromiumおよび_node.js_に基づくアプリランタイムです。 NW.jsを使用して、ネイティブアプリをHTMLおよびJavaScriptで記述できます。また、Node.jsモジュールをDOMから直接呼び出すことができ、すべてのWebテクノロジーを使用してネイティブアプリケーションを記述する新しい方法を実現できます。

  • AppJS

    スタンドアロンの配布可能パッケージおよびnpmパッケージとして利用可能


一方、 console.log() を使用して、Node.jsでメッセージを出力できます。

_console.log('hello');
_
8
sampathsris

Alert()プロパティは、javascriptではなくブラウザでのみ許可されます。

0
Rubin bhandari

これらの回答は「正しい」ですが、ブラウザの外部ではアラート機能を使用できないため、作成して使用できない理由はありません。

node -e "function alert(x){ 
            x === 'undefined' ? console.log('undefined') : console.log(x); return; 
         }; 
         alert('x'); alert();"

結果:

x
undefined

その場合、既存のコードやサンプルなどを変更する必要はないかもしれません。

0
ggb667

アラート機能はブラウザ用です。これは、cmdまたはbashで印刷するためのnodejsのフロントエンドを意味します。これを使用する必要があります。

console.log("Sample alert");

ここで任意の変数または定数を印刷できます...変数を印刷するには、カンマを削除するだけです。

0
Adnan Khan

キーを待つコードも必要です。ここから始まります:

process.stdin.on('char', function() {
  var chunk = process.stdin.read();
  if (chunk !== null) {
    process.stdout.write('data: ' + chunk + 'got?\n');
  }
});
0
tomarone