🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

6553閲覧

Node.jsはアプリケーションサーバーなのかどうか

jjj001

総合スコア55

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/01/23 13:37

編集2021/01/23 13:41

Nuxt公式ドキュメントを読んでいた際に、疑問に思った点があり、ご質問させて頂きました。
nuxt start コマンドを実行すると、「本番サーバーを起動する」とあるのですが、ここでいう本番サーバーとは「Node.js」のことを指しているのでしょうか...?
元々疑問に思っていたことなのですが、「Node.js」はNuxtを動かすために必要かと思うのですが、そうなると、「Node.js」はアプリケーションサーバーということなのでしょうか。
こちらの疑問につきまして、どなたかご助言頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

Node.js - official

Node.js® は、Chrome の V8 JavaScript エンジン で動作する JavaScript 環境です。

Node.js - Wikipedia

Node.js はV8 JavaScriptエンジン上に構築されたJavaScript実行環境の1つである[5]。イベント化された入出力を扱うサーバサイドJavaScript環境であり、Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している[6]。

読めばわかるとおり、「JavaScriptの実行環境」以外の何物でもありません。
「JavaScriptの実行環境」なので、「JavaScriptで書かれたプログラム」を実行するだけのものです。

直接実行するJavaScriptがWebサーバーの機能を持っており、そのサーバープログラムを介して自分の書いたアプリケーションコードを実行してくれる場合は、「Node.js上で動いているアプリケーションサーバー」となります。

投稿2021/01/23 21:48

gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jjj001

2021/01/24 03:22 編集

ご回答ありがとうございます。 > 「Node.js上で動いているアプリケーションサーバー」となります。 こちらなのですが、「Node.js」がアプリケーションサーバープログラムを実行しているということは、「npm run start」などにより本番サーバーを起動する = Node.js上でAPサーバープログラムを起動するといった意味になってくる訳なのですね
gentaro

2021/01/24 03:40

何を確認したいのかよくわかりませんが、npm runというコマンドがやってる事は理解してますか? 「npm run start」というのはpackage.jsonで定義された「start」という名前の付けられたコマンドを実行しているだけです。 そこで実行されるスクリプトがサーバープログラムであれば、サーバーが起動されるということです。
guest

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

miyabi-sun

総合スコア21203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jjj001

2021/01/24 04:46

ご回答ありがとうございます。 「Node.js」はあくまでJavaScriptを実行させるプログラムであるといった訳なのですね。 「nuxt start」を実行すると「本番サーバー」を起動するとありましたが、こちらは、JSで記述されたアプリケーションサーバープログラムをNode.js上で実行するといった認識であっていますでしょうか?
guest

0

Node.js 自体は JavaScript で書かれたプログラムを動かすための実行環境です。

Nuxt の場合、nuxt dev とすると JavaScript で書かれた開発サーバーが起動し、nuxt build とすると JavaScript で書かれたトランスパイラやパッケージバンドラが起動し、nuxt start とすると JavaScript で書かれた本番サーバーが起動するようですね。どれも JavaScript で書かれた Node.js 上で動くプログラムということです。

投稿2021/01/23 16:34

hoshi-takanori

総合スコア7899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jjj001

2021/01/24 03:24

ご回答ありがとうございます。 「本番サーバー」 = Node.js上で実行されるJavaScriptプログラムであった訳なのですね...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問