ホーム

node.jsでmysqlにデータを追加するメモ

 

環境

  • Node.js
  • nodejs
  • Node
  • JavaScript
  • JSON
  • package.json
  • MySQL
  • npm
  • さくらVPS

ディレクトリの状況

node.jsでmysqlを使う方法をメモっておきます。最小限です。下記はディレクトリの状況。サーバーはアパッチを使っています。

# pwd
/var/www/html/node_test_folder

# ls
node_modules  node_test.js  package.json

package.jsonを書く

node.jsの機能を拡張してnode.jsでmysqlを使えるようにします。package.jsonを下記のように書いてnpm installを実行すればディレクトリにnode_modulesが出来ます。これでnode.jsからmysqlを使うことができるようになります。

{
  "dependencies": {                                                               
    "mysql": "*" 
  }
}

mysqlのホストを確認

mysql> show variables like 'hostname';

node.jsからmysqlに接続するために僕のmysqlのhostを知りたくて、vpsに接続した状態でmysql -u root -pとかでmysqlに入った後に上記のコマンドを実行してさくらvpsのhostのようなものを取得出来たのですが、このコマンドで実行したものは外部からアクセスするためのもので、よくわかんないんですが、外部から僕のvpsのmysqlに接続できるための設定を書いてなかったのでエラーを吐きました。まあ、今回は、自分のvpsの中のnode.jsから接続するのでローカルで大丈夫。下記のコマンドで127.0.0.1を確認してください。

mysql> select host from mysql.user;
+-------------------+
| host              |
+-------------------+
| 127.0.0.1         |
| ::1               |

接続

# vi node_test.js

var mysql      = require('mysql');
var connection = mysql.createConnection({


host: process.env.DB_HOST || '127.0.0.1',
user: process.env.DB_USER || 'ユーザー名',
password: process.env.DB_PASS || 'パスワード',
database: process.env.DB_NAME || 'データベースの名前'


});

//これは省略してもoK。
connection.connect();

データベースの確認

今回は下記のような構造を持ったデータベースを用意しました。

node_testという名前のDB

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| node_test          |
+--------------------+

node_test_tableという名前のテーブル

MariaDB [node_test]> show tables;
+---------------------+
| Tables_in_node_test |
+---------------------+
| node_test_table     |
+---------------------+


node_test_coulomという名前のカラム

MariaDB [node_test]> SHOW COLUMNS FROM node_test_table
    -> ;
+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| node_test_coulom | varchar(20) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+

最初入ってるデータ

MariaDB [node_test]> SELECT node_test_coulom FROM node_test_table;
+------------------+
| node_test_coulom |
+------------------+
| value1           |
| node_test_value  |
+------------------+


データの挿入

var sql = "INSERT INTO node_test.node_test_table (node_test_coulom) VALUES ('testnode')";

connection.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });   

データの確認

connection.query('SELECT node_test_coulom FROM node_test_table;', function (error, results, fields) {

console.log(results);

})

確認

# node node_test.js 

1 record inserted
[ RowDataPacket { node_test_coulom: 'value1' },
  RowDataPacket { node_test_coulom: 'node_test_value' },
  RowDataPacket { node_test_coulom: 'testnode' }
]

全ソース

var mysql      = require('mysql');
var connection = mysql.createConnection({


host: process.env.DB_HOST || '127.0.0.1',
user: process.env.DB_USER || 'ユーザー名',
password: process.env.DB_PASS || 'パスワード',
database: process.env.DB_NAME || 'テーブル名'


});

//これは省略してもoK。
connection.connect();
console.log('node楽しい♪');


var sql = "INSERT INTO node_test.node_test_table (node_test_coulom) VALUES ('testnode')";

connection.query(sql, function (err, result) {
    if (err) throw err;
    console.log("1 record inserted");
  });                                                                                                                                                                                


connection.query('SELECT node_test_coulom FROM node_test_table;', function (error, results, fields) {

console.log(results);

})


Pocket
LinkedIn にシェア

エンジニアにおすすめできる本

Card image cap
リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Card image cap
Webを支える技術

HTTP,URI,HTML,そしてREST

Card image cap
誰でもPythonで作れる

儲かるAIとソフトウェアの作り方

Card image cap
プログラマが知るべき97のこと

現場で使える実践哲学のマスターピース

Card image cap
情熱プログラマー

時代を超えて。ソフトウェア開発者の幸せな生き方

Card image cap
アジャイルサムライ

プログラミング達人開発者への道

Card image cap
Rubyを作った男 まつもとゆきひろ

コードの世界 スーパー・プログラマになる14の思考法

ご提供 sponsor
 

Meee!(ミー)は、ビジネスからプライベート利用まで、個人のスキルを気軽に売り買いできるスキルマーケットです。カテゴリや居住地から、検索することが可能です。

 

ランゲージエクスチェンジは、ネイティブスピーカーと気軽にマッチングできる言語交換プラットフォームです。あなたの地元に住む外国人を探したり、留学や海外移住の前に、現地のネイティブスピーカーと繋がることもできます!

宣伝
 

りょすけトークchは、仕事や私生活をより豊にするYouTubeチャンネルです。文献(本、映画、論文)から役に立つ情報をまとめ、生涯にわたり役に立つ哲学をお届けしています。是非、チャンネル登録してみてね

-ホーム

Copyright© offブログ! , 2021 All Rights Reserved Powered by AFFINGER5.