Nuxt公式ドキュメントを読んでいた際に、疑問に思った点があり、ご質問させて頂きました。
nuxt start
コマンドを実行すると、「本番サーバーを起動する」とあるのですが、ここでいう本番サーバーとは「Node.js」のことを指しているのでしょうか...?
元々疑問に思っていたことなのですが、「Node.js」はNuxtを動かすために必要かと思うのですが、そうなると、「Node.js」はアプリケーションサーバーということなのでしょうか。
こちらの疑問につきまして、どなたかご助言頂けましたら幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
Node.js® は、Chrome の V8 JavaScript エンジン で動作する JavaScript 環境です。
Node.js はV8 JavaScriptエンジン上に構築されたJavaScript実行環境の1つである[5]。イベント化された入出力を扱うサーバサイドJavaScript環境であり、Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している[6]。
読めばわかるとおり、「JavaScriptの実行環境」以外の何物でもありません。
「JavaScriptの実行環境」なので、「JavaScriptで書かれたプログラム」を実行するだけのものです。
直接実行するJavaScriptがWebサーバーの機能を持っており、そのサーバープログラムを介して自分の書いたアプリケーションコードを実行してくれる場合は、「Node.js上で動いているアプリケーションサーバー」となります。
投稿2021/01/23 21:48
総合スコア8947
0
「Node.js」はアプリケーションサーバーということなのでしょうか。
Node.jsはアプリケーションサーバではありません。
Node.jsは汎用スクリプト言語及びその実行環境でしかないからです。
しかし、アプリケーションサーバとしての要件を満たしたJSファイルと
共に動作させたNode.jsはアプリケーションサーバとなります。
なんやねんその回答は?
何故そうなるかという流れを下に書きました。
まずアプリケーションサーバの定義からいきましょう。
アプリケーションサーバ(英: Application Server)は、ビジネスロジックなどを実装したアプリケーションソフトウェアを実行することを専門とするコンピュータネットワーク上のサーバコンピュータ、もしくはそのようなコンピュータ上でのアプリケーションの実行を管理補助するミドルウェアのこと。
ウェブアプリケーションサーバは、ウェブクライアントからのHTTPのレスポンス要求を処理するウェブサーバとバックエンドの関係データベース管理システム (RDBMS) を中心とするデータベース中核層への橋渡しを担い、データの加工などの処理を行う。
以上がアプリケーションサーバの定義となります。
今日Webで動作しているサーバマシンの大半はLinuxですので、
ビジネスロジック専用か?と言われると別に何でも動かして遊べるので微妙に感じますが、
Webサーバで動作する目的としてWeb上で借りたVPSやクラウドマシンは
アプリケーションサーバと呼んでも良さそうです。
この辺厳密に考えたらドツボにはまる気がするので、
一旦「満たしている」と考えます。
より詳しい人が居たらツッコミください。
nuxt start
コマンドを実行すると、「本番サーバーを起動する」とあるのですが、ここでいう本番サーバーとは「Node.js」のことを指しているのでしょうか...?
そういう話ならば、
確かにnuxt start
やNode.jsはアプリケーションサーバと呼んでも良さそうですね。
Node.jsの開発秘話的な意味では
WebサーバをJSで記述して作りたいので開発された歴史があります。
しかしNode.jsの本質はRubyやPythonと同じ、汎用スクリプト言語です。
Node.jsは使い捨ての自動実行やテスト実行、
HTMLやCSSをコンパイル等といったWebサーバとは全然関係無い
幅広いジャンルで使われています。
例えば下記のようなJSファイルを作成し、
Node.jsで動かしたらアプリケーションサーバと呼べるのでしょうか?
js
1// index.js 2console.log("Hello world");
bash
1$ node index.js 2Hello world
お前「Hello world」とか発言しただけで何もせずに終わっとるやんけ
つまりそういう事です。
Node.jsがアプリケーションサーバになるか否かの分岐点は、
実行対象のJSファイルがアプリケーションサーバとしての要件を満たしているか否かで決定されます。
この理屈ならばnuxt start
はアプリケーションサーバだけど、
Node.jsはアプリケーションサーバではないは同時に成立します。
投稿2021/01/24 03:49
総合スコア21203
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Node.js 自体は JavaScript で書かれたプログラムを動かすための実行環境です。
Nuxt の場合、nuxt dev とすると JavaScript で書かれた開発サーバーが起動し、nuxt build とすると JavaScript で書かれたトランスパイラやパッケージバンドラが起動し、nuxt start とすると JavaScript で書かれた本番サーバーが起動するようですね。どれも JavaScript で書かれた Node.js 上で動くプログラムということです。
投稿2021/01/23 16:34
総合スコア7899
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/24 03:22 編集
2021/01/24 03:40