Node.jsでMySQLにINSERTする[サニタイズ]

2019年1月9日

Node.jsアプリケーションにおいてMySQLにデータを入力(INSERT)してみます。

 

本記事ではexpress-generatorを利用しています。下記関連ページを参照してexpress-generatorモジュールをインストールしておいて下さい。

 

関連ページ

express-generatorを利用する

 

 

今回は下記のような簡単なアプリケーションを作成しています。

 

フォーム画面(localhost:3000/add)にtarouと入力してPOSTボタンをクリックすると、

トップページ(localhost:3000/)に戻りデータベースに値が入力されていることを確認できます。バリデーションの処理などもおこなっています。

 

MySQLとの接続、MySQLのテーブル構造などは下記のページを参照下さい。

mysqlを利用する[express][node.js]

 

 

まず雛形として「myproject」という名前のプロジェクトを作成します。テンプレートエンジンとしてEJSを利用するので、オプションに「-e」を設定しています。

 

依存するモジュールをインストールしておきます。

 

mysqlおよびexpress-validatorモジュールをインストールします。

 

package.jsonのdependenciesの項目を確認すると下記のようになっています。

 

add.ejsのファイルのみを新規作成しています(users.jsなどは雛形で既に生成されているファイルです)。

 

 

 

 

index.js

38行目

.not().isEmpty()で未入力をチェックするバリデーションをおこない、.trim().escape()で前後の空白スペース削除およびエスケープ処理といったサニタイズをおこなっています。express-validatorモジュールについては下記のページを参照下さい。

 

express-validatorでバリデーションを行う

 

例えばフォームに <script>alert(‘hoge’)</script> を入力すると、MySQLにはサニタイズされた下記のようなデータが保存されます。

 

 

index.ejs

 

add.ejs

 

次ページ

Node.jsでMySQLからデータをDELETEする

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー