LoginSignup
0
0

More than 1 year has passed since last update.

Node.js: mysql2 で MariaDB のデータを作成 (Create)

Last updated at Posted at 2020-06-03

プログラム

フォルダー構造

$ tree -a
.
├── .env
├── config_mariadb.js
├── go_create.sh
└── maria_create.js

Async/Await を使います。

maria_create.js
#! /usr/bin/node
// ---------------------------------------------------------------
//	maria_create.js
//
//					Feb/24/2023
//
// ---------------------------------------------------------------
'use strict'

var mysql = require('mysql2/promise')
var config_mariadb = require('./config_mariadb')
// ---------------------------------------------------------------
function dict_append_proc (dict_aa,id_in,name_in,population_in,date_mod_in)
{
	var unit_aa = {}
	unit_aa['name'] = name_in
	unit_aa['population'] = population_in
	unit_aa['date_mod'] = date_mod_in

	dict_aa[id_in] = unit_aa

	return	dict_aa
}

// ---------------------------------------------------------------
function data_prepare_proc ()
{
	var dict_aa = new Object ()

	dict_aa = dict_append_proc (dict_aa,'t3321','岡山',812763,'1950-10-23')
	dict_aa = dict_append_proc (dict_aa,'t3322','倉敷',783257,'1950-7-15')
	dict_aa = dict_append_proc (dict_aa,'t3323','津山',975241,'1950-1-2')
	dict_aa = dict_append_proc (dict_aa,'t3324','玉野',231864,'1950-6-22')
	dict_aa = dict_append_proc (dict_aa,'t3325','笠岡',769358,'1950-8-14')
	dict_aa = dict_append_proc (dict_aa,'t3326','井原',865792,'1950-9-12')
	dict_aa = dict_append_proc (dict_aa,'t3327','総社',438251,'1950-3-21')
	dict_aa = dict_append_proc (dict_aa,'t3328','高梁',352486,'1950-7-26')
	dict_aa = dict_append_proc (dict_aa,'t3329','新見',246951,'1950-10-2')
	
	return	dict_aa
}

// ---------------------------------------------------------------
async function main()
{
	const dict_aa = data_prepare_proc ()

	const [host, user, password, data_base] = config_mariadb.config_mariadb_proc()
	try {
		var conn = await mysql.createConnection ({
			host: host,
			user: user,
			password: password,
			database: data_base
			})

		const sql_str_drop = 'drop table if exists cities'
		await conn.execute(sql_str_drop)

		var sql_str_create = 'create table cities '
		sql_str_create += '(id varchar(10), name varchar(20),'
		sql_str_create += ' population int, date_mod date)'
		await conn.execute(sql_str_create)

		for (var key in dict_aa)
		{
		console.log(key)
		var sql_str = "insert into cities "
		sql_str += "(id,name,population,date_mod) values ("

	const str_data = "'" + key + "','" + dict_aa[key].name + "',"
		+ dict_aa[key].population + ",'" + dict_aa[key].date_mod + "')"

		sql_str += str_data
		await conn.execute(sql_str)
		}

	} catch (ee) {
		console.log(ee)
		return ''
	} finally {
		if (conn && conn.connection) {
		conn.end()
		}
	}

	console.error ("*** 終了 ***")
}

// ---------------------------------------------------------------
console.error ("*** 開始 ***")
main ()
// ---------------------------------------------------------------

.env
config_mariadb.py
はこちら
Node.js: MariaDB のバージョンを表示

実行コマンド

go_create.sh
export NODE_PATH=/usr/lib/node_modules
./maria_create.js

確認したバージョン

$ node -v
v19.7.0
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0