knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

CSVデータから sqlite3に保存して、chart.jsでグラフ表示する。

index:

概要:

前のVue.js + express  関連になりますが、
sqlite3版で、 CSVデータ保存で、chart.jsで表示となります。

・リスト部分は、Vue.js です。

環境

node.js 10.16.0
express : 4.16.1
sqlite3

参考のコード

github.com

画面

f:id:knaka0209:20190905192904p:plain

実装など

・表の作成
https://github.com/kuc-arc-f/app7_sqlite_chart/blob/master/doc/mdats.sql

・グラフ表示
https://github.com/kuc-arc-f/app7_sqlite_chart/blob/master/views/mdats/chart.ejs

・読み込み
https://github.com/kuc-arc-f/app7_sqlite_chart/blob/master/csv_import.js

/******************************** 
*
*********************************/
function insert_db(db ,item ){
    var sql = "INSERT INTO mdats (mdate, hnum, lnum, up_date) VALUES "
    sql += " (date('"+ item.date +"'), ?, ?, CURRENT_TIMESTAMP)"
//console.log( sql );
    var stmt = db.prepare(sql )
    stmt.run(
        item.hnum,
        item.lnum
    )
    stmt.finalize()
    db.close()
}
/******************************** 
*
*********************************/
function proc_arr_check(items){
    var utl = new mdl_util( )
    items.forEach(function (item) {
        var date = item[0]
//console.log( date.length );
        if(date.length > 0){
            date = utl.convert_str2date( date )
            date = utl.convert_date2yymmdd( date )
//console.log( date );
            var hnum = item[1]
            var lnum = item[2]
            var arr ={
                "date" : date,
                "hnum" : hnum,
                "lnum" : lnum,
            }
            var db = new sqlite3.Database( dbfileName )
            insert_db(db, arr)
        }
    });
}
/******************************** 
*
*********************************/
function read_csvFile(input_file ){
    var rs = fs.createReadStream( input_file );
    var readline = require('readline');   
    var rl = readline.createInterface(rs, {});
   
    var items = []
    var i = 0;
    rl.on('line', function(line) {
        if(i > 0){
            if(line.length > 0){
               col = line.split(",")
//console.log( col.length );
                if(col.length >= 3){
                    items.push( col )
                }
            }
        }
        i += 1;
    })    
    .on('close', function() {
//        console.log( items );
        proc_arr_check(items)
    });            
}
/******************************** 
* main
*********************************/
var items = read_csvFile("dat/import.csv");