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

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

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

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

Node.js

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

Q&A

解決済

1回答

10258閲覧

node.js データベースに接続できな

h_h0323

総合スコア14

MySQL

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

Node.js

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

0グッド

0クリップ

投稿2016/07/07 09:19

Node.jsで外部のデータベースに接続したいのですが、接続ができず困っております。

npm install mysql

をおこない、

var mysql = require('mysql');

を記述しても

Uncaught TypeError: Cannot read property 'createConnection' of undefined

とエラーがでてしまいなにもできない状態です。

lang

1package.json 2{ 3 "name": "electron", 4 "productName": "app name", 5 "version": "1.0.0", 6 "description": "", 7 "main": "main.js", 8 "dependencies": { 9 "mysql": "^2.11.1" 10 } 11}

lang

1config.json 2{ 3 "databaseAuth": { 4 "host" : "100.100.100.100", 5 "user" : "hogehoge", 6 "password" : "test", 7 "database" : "test" 8 } 9}

lang

1test.js 2 3var mysql = require('mysql'); 4var config = require('./config.json'); //configの読み込み 5 6var connection = mysql.createConnection(config.databaseAuth); 7 8var sql = 'SELECT * FROM testtable WHERE name = ?'; 9var userName = 'admin'; 10 11connection.connect(); 12 13var query = connection.query(sql, [userName], function(err, results) { 14 if (err) { 15 console.log(err); 16 } 17 connection.end(); 18 console.log(results); 19}); 20

もう半日は悩んでおります。
おわかりでしたら教えていただければと思います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

test.jsが置いてあるフォルダでnpm install mysqlを行いましたか?test.jsが置いてあるフォルダのnode_modulesフォルダ内にmysqlフォルダがないと動きません。もう一度確認してみてください。

投稿2016/07/07 09:34

masaya_ohashi

総合スコア9206

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

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

h_h0323

2016/07/07 09:49

同じフォルダに入れても動かない状態です。
h_h0323

2016/07/08 09:10

コマンドプロンプトよりjsを実行するとできるのですが、index.htmlからjsを呼び出すとできないようなんです。
masaya_ohashi

2016/07/08 09:19

HTMLからNode.jsのコードを呼び出すことはできませんよ?
masaya_ohashi

2016/07/08 09:21

Node.jsはnodeコマンドで実行できるjavascriptであり、HTML上で実行するjavascriptとは違う構造で動いています。文法は同じでも、実行される環境が違うため、できることが違います。<script></script>のようなHTMLタグ内にNode.jsのコードを書いても実行することはできません。
h_h0323

2016/07/08 10:00

>HTMLからNode.jsのコードを呼び出すことはできませんよ? 恥ずかしいことに知識不足でした。 ただ、このサイトを参考にしているのですが、 http://dev.classmethod.jp/client-side/electron_connect_mysql/ renderer.jsはhtmlから呼び出しているように感じておりますがいかがなのでしょうか。
masaya_ohashi

2016/07/08 10:09

そのやり方ができるのはElectronが動いていること前提です。Electronは導入されていますか?
h_h0323

2016/07/08 10:12

導入しております。
h_h0323

2016/07/08 10:13

Electronにて構築をおこなっております。
masaya_ohashi

2016/07/08 10:19

index.htmlを開くのはindex.htmlをダブルクリックで開いていますか?
h_h0323

2016/07/08 10:29

ダブルクリックでは開いていないです。 mainWindow.loadURL('file://' + __dirname + '/index.html'); にて初期表示しております。
masaya_ohashi

2016/07/08 10:35

node test.jsで実行するとどうなりますか?
h_h0323

2016/07/08 10:38

それをコマンドプロンプトで実行するとできるのですが、 index.htmlよりtest.jsを読み込み実行すると 「Uncaught TypeError: Cannot read property 'createConnection' of undefined」 のエラーがでてしまいます。
masaya_ohashi

2016/07/08 11:08

index.htmlを質問文に追記してみていただけますか?
h_h0323

2016/07/09 03:28

ローカルで接続することはできました! しかし、Electronをリリースしたあとに起動させると、 Uncaught Error: Cannot find module 'mysql' とでてしまうのですが、これっておわかりになりますでしょうか。
masaya_ohashi

2016/07/09 11:56

ここまで答えておいてなんですが、実はelectronはググった知識しかないのでリリースの言葉の意味がわからないです。リリースとはどういう状況ですか?
h_h0323

2016/07/11 03:33

遅くなり申し訳ありません。 >リリースとはどういう状況ですか? http://getnews.jp/archives/1097929 の下にリリースというのが御座います。 他のPCで使う場合に必要だということなのですが、 これをおこなうと「Uncaught Error: Cannot find module 'mysql'」となってしまいます。
masaya_ohashi

2016/07/11 04:32

node_modules package.json config.json test.js release.js このようなフォルダ構成であってますか? そして、このnode_modulesフォルダにはmysqlは入っていますか?
h_h0323

2016/07/11 04:55

この構成であっています。 mysqlも入っております。
h_h0323

2016/07/11 09:30

上記の方法でも「Uncaught Error: Cannot find module 'mysql'」がでてしまいます。
masaya_ohashi

2016/07/12 02:14

お使いのnode,npm,electron,electron-packagerのバージョンを書いてみてください。
h_h0323

2016/07/12 09:22

遅くなりました。できました! ありがとうございます!!
masaya_ohashi

2016/07/12 23:15

結局原因はわかったのでしょうか?
h_h0323

2016/07/20 09:06

原因はpackage.jsonの"dependencies": {}によるものでした。 npmで何かをインストールしたときに"devpendencies": {}と書き換わっていたのが原因でした。 お手数をお掛けしました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問