Nodeに非常に慣れていないので、アプリの基本を理解しようとしています。これらの2つのコマンドの理由について興味があります。
ノードapp.js
--vs--
npm start
同じものをコンソールに出力し、「リスニング」を続けているように見えますが、なぜ http:// localhost:30 にアクセスしようとすると、最初のコマンドを実行したときにのみ404が表示されます。
Express 4は異なるアプリ構造を持っているようですが、コンソールで同じ動作をしているにもかかわらず、一方が正常にリッスンし、もう一方がリッスンしないのはなぜですか?
説明は役に立ちます。ありがとう!
これらの2つのコマンドは必ずしも同じではありません。 npm start
は、 'package.json'で定義されたとおりに実行するように 'start'スクリプト構成が指示するものは何でも実行します、node app.js
は、「ノード」で「app.js」ファイルを実行します。詳細については、 http://browsenpm.org/package.json を参照してください。したがって、次のpackage.jsonがある場合、コマンドはまったく異なります。
{
"name": "my cool node project",
....
"scripts": {
"start": "node index.js"
}
....
}
次のpackage.jsonは、それらを同一にしたいものです。
{
"name": "my cool node project",
....
"scripts": {
"start": "node app.js"
}
....
}
「開始」スクリプトが実行するように設定されているものを確認することから始めて、NPMではなくCLIで同じコマンドを直接実行して、違いを確認します。
しかし、なぜ一方が正常にリッスンし、もう一方がリッスンしないのですか
サーバーが404を返している場合、サーバーがリッスンしていることを示しますが、ドキュメントルートまたはアクセス許可が適切にセットアップされていないため、「ファイルが見つかりません」という応答を返します。
上記の回答に加えて、ポイントを追加したいと思います。
npm start
にscripts
部分を持たずにpackage.json
を実行すると、npm
がそのディレクトリでserver.js
を探します。 node server.js
を使用して実行すると、エラーメッセージとしてnpm ERR! missing script: start
がスローされます。
追加したいことはもう少しあります
まず第一に
Node-JavaScriptコードの実行時
NPMはパッケージマネージャーであり、パッケージのダウンロード、更新、実行などに使用できます。
here を読んで、それがあなたのために何をするかを見てください。
node any.js-これは、単にJavaScriptファイル「any、js」を実行します。サーバーを起動するためのコードがない場合、エラーが発生します
npm start-package.jsonでstartコマンドを実行します。以下がpackage.jsonの起動スクリプトである場合の非常に基本的な例
コンソールに「Hello」と表示されます。
cRAを使用して反応アプリを作成する場合、通常、このセクションには「react-scripts start」が含まれます。開発環境をセットアップしてサーバーを起動し、ホットモジュールをリロードする
それが、この場合にエラーが発生しない理由です