1. ホーム
  2. javascript

[解決済み] npm startとnode app.jsの比較

2023-06-14 05:37:03

質問

私はNodeの超初心者で、アプリの基本について理解しようとしています。なぜこれらの2つのコマンドがあるのか、興味があります。

node app.js

--vs--

<ブロッククオート

npmスタート

はコンソールに同じことを出力し、リスニングを続けているように見えます。 http://localhost:3000 にアクセスしようとすると、最初のコマンドを実行したときだけ 404 が表示されます。

Express 4 はアプリの構造が違うようですが、コンソールでは同じ動作なのに、一方は正常にリッスンでき、もう一方はできないのはなぜでしょうか。

どんな説明でも助かります。ありがとうございます。

どのように解決するのですか?

この2つのコマンドは、必ずしも同じものではありません。 npm start は、'package.json' で定義された 'start' スクリプトを実行するように設定されていれば、何でも実行します。 node app.js は'node'の'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"
    }
    ....
}

まず、'start' スクリプトが何を実行するように設定されているかを確認し、同じコマンドを NPM 経由ではなく CLI で直接実行してみて、どこに違いがあるのかを確認します。

しかし、なぜ一方は正常にリッスンし、もう一方はリッスンしないのでしょうか?

サーバーが 404 を返している場合、サーバーはリッスンしていますが、ドキュメント ルートまたはアクセス許可が適切に設定されていないため、「File not Found」応答が返されることを示唆していると思われます。