Node.jsでブラウザからCSVを保存する

ブラウザのHTMLに入力した値を、Node.js経由でCSVに記録します。Webページの「記録」ボタンを押すと、現在時刻と温度が記録されるサンプルを作りました。Node.jsモジュール「CSV Writer」を使うと簡単に実現できます。

開発環境

OS:raspbian 10.7(WindowsやMacでも問題ないと思います)
Node.js 10.21.0

Node.js モジュール

CSV Writer
Express
Socket.IO

Node.jsのコード

事前に上記3つのモジュールをインストールします。

CSV Writer」はnpmのサイトにインストール方法やサンプルコードがあるので参考にしました。

Node.jsのコードです。

ブラウザからSocket.IOで受け取ったデータを、CSV Writerで書き込みます。

書き込み終わったらまた、ブラウザに(‘recorded’, true)と戻しています。

ブラウザ側のHTMLコード

データ送信画面のHTMLを作ります。

「記録」ボタンを押すと、テキスト入力欄の値がSocket.IOでNode.jsサーバーに渡ります。

CSVで保存用に、[{“date”: 日付, “temp”: 値}]という配列でデータは渡します。

Expressで指定した場所(htdocs)に、このHTMLを配置します。

「記録」ボタンでCSVに保存

Node.jsでhttp://localhost:3000を立ち上げ、制作したHTMLをブラウザで開きます。

「記録」ボタンを押してみましょう。

正常に動けば、「記録中…」と一瞬ボタンが変わって、CSV書き込み完了後に「記録完了」という表示になります。

「記録」ボタンを押すたびに、データがCSVに追記されていきます。

記録されたCSVファイルは、「[Node.jsを置いたディレクトリ]/record/data.csv」に保存されます。

エクセルやメモ帳でCSVを開き、送信データが正しく書き込まれていれば成功です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)