質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.31%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Node.js

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

Q&A

解決済

1回答

3348閲覧

nodejsとApacheの違い

makun625

総合スコア27

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Node.js

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

0グッド

1クリップ

投稿2022/09/03 15:51

抽象的な質問になります。
現在、nodejsの勉強中なのですが、mysqlとの連携の際Apacheが必要だとサイトで書いてありました。
Apacheとnodejsは同じWEBサーバーですよね?
nodejsだけでmysqlを動かすことはできないんでしょうか?
また、 nodejsの理解としてWEBサーバーを立ち上げられてなおかつサーバー言語も記述出来るというハイブリッドな言語だと認識しているのですが、認識は合ってますでしょうか?
よろしくお願いいたします。

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

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

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

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

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

hoshi-takanori

2022/09/03 23:50

> mysqlとの連携の際Apacheが必要 どのサイトにそんなことが書いてあったのでしょうか?
guest

回答1

0

ベストアンサー

結論から言うとNode.js単体だけでMySQLサーバと通信が可能です。
npmでmysql2のモジュールを導入してください。
https://www.npmjs.com/package/mysql2

使い方はこの辺の記事を読めば良いでしょう
node.js MySQLではなくMySQL2を使ったほうがいいみたい - CFAutoG 自動化


Node.jsは汎用スクリプト言語(RubyやPythonと同じジャンル)です。
元々Webブラウザ上でDOMを弄る為にしか使われないJavaScriptを、
Webブラウザ関係なく動かす為に魔改造して作られました。
Node.jsの用途の一つとしてWebサーバを構築する機能があります。

Apacheは静的ファイルを配信するWebサーバです。
特定のディレクトリに配信するファイルを設置して、Apacheを起動するだけで良いのでITエンジニア以外の方でも扱いやすい特徴があります。
また、長い歴史があり安定した動作をする事が特徴です。


現在、nodejsの勉強中なのですが、mysqlとの連携の際Apacheが必要だとサイトで書いてありました。

それは何処情報ですか?
質問者さんが記事の内容を勘違いして覚えていると考えられます。

Apacheとnodejsは同じWEBサーバーですよね?

違います。
RubyやPython、C言語、Java等にもWebサーバとして稼働させる仕組みがありますが、
それらも全て同じWebサーバですよね?→そんなわけねえだろって話です。

Node.jsは汎用スクリプト言語という概念が主、
その中にC10K問題を解消出来る優秀なWebサーバ機能が搭載されているという情報が従。

nodejsだけでmysqlを動かすことはできないんでしょうか?

MySQLはサーバとクライアントの2軸で操作するデータベースです。

そもそもNode.jsに限らす何の手段を用いたとしても「クライアント」は用意出来ますが、
「サーバ」は用意出来ないので別途MySQLサーバを立ち上げる等して用意する必要があります。

しかしNode.jsにもMySQLのクライアントはあるので
サーバさえ用意できれば、Node.js単体で通信可能です。

Apacheはそもそも静的ファイル(HTML、CSS、JS、画像ファイル等)を配信するだけのアプリなので
MySQLと通信するような機能は搭載されていません。
mod_php等の外部モジュールを利用してPHPを稼働、PHP越しにMySQLクライアントを起動させて通信するような仕組みを考えてるのでしょうか?
まぁ必要ありません。

また、 nodejsの理解としてWEBサーバーを立ち上げられてなおかつサーバー言語も記述出来るというハイブリッドな言語だと認識しているのですが、認識は合ってますでしょうか?

「サーバ言語」とはなんでしょうか?
ググっても出てきませんでした。

最大限解釈して回答すると、
Apacheは明確な目的がある既製品なので出来る事が限られています。
まぁPHPと併用すれば大抵の事は可能ですが。

Node.jsにとってのWeebサーバは所詮Node.jsが内包している1機能でしかないので、
それに好きなコードやモジュールを組み込む事で無限のカスタマイズが可能です。
(コードは書いたようにしか動かないので、正常動作を保証する為に大いなる責任がつきまといますが)

投稿2022/09/05 03:51

miyabi-sun

総合スコア21393

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問