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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JavaScript

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

Q&A

解決済

3回答

24427閲覧

JavascriptでMYSQLに接続する。

23_sora

総合スコア7

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JavaScript

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

0グッド

0クリップ

投稿2018/08/10 06:34

学習用に、ログイン機能をもったアプリを作ろうと思っています。
そのためDBに接続、参照もしくは登録したいと考えています。
環境
言語:HTML/Javascript
DB:MYSQL
OS: windows
ブラウザ:IE

接続ソースがわからないため、Node.jsのコードを参考にしたのですが接続できませんでした。

以下はソースです。
function openConnection() {
const mysql=require('mysql');
const connection=mysql.createConnection({
host:host, //それぞれ右側は変数
user:user,
database:database,
pass:pass
});
connection.connect();
connection.end();
}

エラー原因はrequireが定義されていない
と表示されます。

お聞きしたのは
JavascriptでMYSQLに接続するソース
です。

よろしくお願いいたします。

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

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

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

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

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

miyabi_takatsuk

2018/08/10 06:37 編集

当該ソースコードは、HTML上、ブラウザでの実行ということでしょうか?Node.JSは、サーバーサイドなので、DBに接続などできますが、ブラウザ(クライアントサイド)からのJavaScript実行では、DBに接続はできません。
m.ts10806

2018/08/10 06:47

そもそもNode.jsが何か分かっていて、きちんと環境を準備されてるのでしょうか
guest

回答3

0

前提として質問文にあるような解決方法は不可能です。

そもそもJavaScriptには自由に別のネットワークにアクセスしてサーバとやり取り出来る機能は存在しません。
あるのはブラウザがAPIとして用意してくれたXMLHttpRequestというAjax通信を行うAPIをお借りしてHTTPリクエスト通信を飛ばすことだけです。

Node.jsはC++製のHTTP通信モジュール等を作ってくっつけてrequire関数で呼べるように魔改造したソフトウェアです。
なので純粋なJavaScriptではrequireはありませんし、MySQLサーバと通信することも不可能です。


では一般的にはどうしているか?に焦点をあわせます。
JavaScriptはXMLHttpRequestというAjax通信を行うAPIがあります。
これでHTTPのリクエストを発射することが可能です。

ログイン機能を有したWebサーバをPHPやRubyやNode.js等で実装して待ち受け、
Ajax通信にIDやパスワード等を盛り込んだHTTPリクエストを受け取ったら変わりにMySQLとのやり取りを行って認証OK/NGを返すような仕組みを実装します。

このようにJavaScript単体ではできないことも何かに代替してもらうことで実現が可能です。

投稿2018/08/10 06:48

miyabi-sun

総合スコア21158

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

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

23_sora

2018/08/10 06:54

そのような仕組みになっていたのですか! 詳細に教えて頂きありがとうございます。
guest

0

ベストアンサー

ブラウザで動いてるjavaScriptからはデータベースには接続出来ません。
node.jsをお使いのPCにinstallした上でnode.jsのscriptとして実行します。(実行にはブラウザは使いません)

Node.js / npmをインストールする(for Windows)

投稿2018/08/10 06:38

編集2018/08/10 06:39
namda

総合スコア705

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

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

23_sora

2018/08/10 06:55

Mysql関係を調べるとNode.jsが頻繁にヒットするためNode.jsを使いたいと思います。 ありがとうございます。
guest

0

なんの知識もないままnode.jsをつかうよりはXAMPPなどで
phpあたりを経由してアクセスしたほうが楽だと思います。

投稿2018/08/10 06:42

yambejp

総合スコア114814

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

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

23_sora

2018/08/10 06:57

まだプログラミングをはじめて少しで、PHPやXAMPPのことを知らないため今回はNode.jsを用いたいと思います。 回答していただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問