Node.jsの代表的なO/RMであるSequelizeの第五弾。
これまで以下のような内容を取り上げてきました。
今回はここまでの情報の整理も兼ねて、簡単なToDoアプリを作ってみようと思います。
続きを読む
Node.jsの代表的なO/RMであるSequelizeの第五弾。
これまで以下のような内容を取り上げてきました。
今回はここまでの情報の整理も兼ねて、簡単なToDoアプリを作ってみようと思います。
続きを読む
Node.jsの代表的なO/RMであるSequelizeの第四弾。
第1回ではインストールから基本的な利用方法、第2回ではSELECT文の使い方、第3回ではトランザクションを取り上げました。
今回は「マイグレーション」のお話です。
Sequelizeから提供されているCLIツールを利用すると、モデルの内容をコマンド一発でMySQLへ反映することができます。最初の1回目だけではなく運用開始後に差分を反映することもできます。他のフレームワークなどでも見かけますよね。Ruby on Railsで初めてこの手のツールを触ったときは感動したものですw
Node.jsの代表的なO/RMであるSequelizeの第三弾。
第1回ではインストールから基本的な利用方法、第2回ではSELECT文の使い方を取り上げました。今回はINSERTやUPDATEなど更新系の処理に欠かせない「トランザクション」です。
Node.jsの代表的なO/RMであるSequelizeの第二弾。
前回はインストールから基本的な利用方法までを取り上げました。今回はSELECT文にまつわるトピックスを取り上げていきます。
Sequelizeに限った話ではないですが、WHERE句の条件が複雑になってくると「これSQL書いた方が早くね?」という気持ちになりますねw
続きを読む
Node.jsでO/RMと言えば「Sequelize」です。
PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Serverなど主要なRDBに対応しており、AWS上での利用報告もありますのでRDSなどでももちろん使えます。また現在たどれる最古のバージョンv1.1.2は2011年にリリースされていることからすでに10年以上の歴史がありもちろん現在もメンテナンスが継続しています。これは安心して利用できますね!
というわけで今回はSequelizeを初めて触るチュートリアルとしてまとめていきます。現行バージョンであるv6のドキュメントを元にしています。
続きを読む
前回に引き続きクレジットカードがテーマです。今回は決済画面などで入力されたクレジットカード番号がどの国際ブランであるかを調べるコードです。
ブランドを検出するロジックは前回と同じですので、ここではユーザーの入力と検出部分のつなぎ込みがメインテーマとなります。
続きを読む
決済画面などで入力されたクレジットカード番号が正しい物であるか検証するコードを書いてみます。
npmでモジュールを探すとcard-validatorなどいくつか見つかるので、実際にはこれらを使うのが楽ちんですね。メンテナンスされていればカード番号の仕様が変わったときもアップデートされることが期待できますし。
ここでは興味本位でスクラッチで書いてみたいと思いますw
続きを読む
Node.jsでウイルスチェックを行います。ユーザーがアップロードしたファイルを公開するようなサービスでは事前にチェックを行わないと、簡単にウイルスを撒き散らすスーパースプレッダーと化してしまいます。
小ネタです。
多くのスクリプト言語やシェルなどで実装されているsleep機能がNode.jsには存在しないため、使いたくなったら自分で用意する必要があります。いくつか方法がありますがお手軽なのはPromiseとsetTimeoutを利用した物です。
あっちこっちで使う場合は以下のように適当なモジュールを用意します。
/**
* sleep.js
*/
const sleep = (time) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, time)
})
}
module.exports = sleep
Eletronでアプリを開発していると、ユーザーをWebブラウザに飛ばしたなるときがあります。
これ実装は非常にかんたんなのですが、最近はセキュリティの関係で描画以外の処理はメインプロセスで行う流れになってきていることもあり、今回はメインプロセスでイベントを補足して標準ブラウザで開くところまでをまとめます。
続きを読む
Node.jsで組み込み型データベースと言えばNeDBなわけですよ。100% JavaScriptで書かれておりMongoDBと同じ手軽なAPIで操作できる上になんと言っても超高速。先日は仕事で80万件ほどつっこんでみましたが普通に動いてビビリましたw
今回はそんなNeDBをElectronで利用する方法をまとめていきます。
続きを読む
Electron v12で破壊的な変更がいくつか行われました。FLASH関係の廃止、レンダープロセスでremoteが非推奨になるあたりが話題になりますが、IPC通信時に一工夫する必要が生じたのが地味に面倒ですw
これまではレンダラープロセスからメインプロセスを呼び出す際にはipcRenderer.invoke()
を実行するだけでしたが、これがそのままでは使えなくなりました。
const {ipcRenderer} = require('electron')
(async () => {
const value = await ipcRenderer.invoke('MyAPI')
})()
上記を実行すると次のようなエラーとなります。これはrequire()
でもimport
に限らずエラーメッセージが表示されます。
# requireでのエラーメッセージ
Uncaught (in promise) ReferenceError: require is not defined
# importでのエラーメッセージ
Uncaught TypeError: Failed to resolve module specifier "electron". Relative references must start with either "/", "./", or "../".
今回はElectron v12でもIPC通信が行えるコードを書いていきます。
続きを読む
前回試したAmazon Rekognitionには、画像に不適切な内容が含まれるかチェックする機能が搭載されています。
今回もNode.jsからRekognitionを利用するコードを書いてみます。SDKを利用してRekognitionへ画像を送ると0〜100の間でどの程度けしからんか判定してくれます。
続きを読む
Amazon Rekognitionを使うと画像や動画をAIで解析し、そこにどういった物体が存在しているか「ラベル」を付けてくれます。例えばジャイアントパンダが写っていれば「Giant Panda」というテキストと、画像内のどこに存在しているか座標情報が送られて来ます。
今回は画像をNode.jsからRekognitionを利用するコードを書いてみます。AWSの流儀やNodeについての基礎知識があれば非常に手軽に実行できます。
続きを読む
Electron製のアプリは非常に簡単に内部のソースコードが閲覧出来てしまいます。これを認識していないと簡単にコピーアプリを作られたり脆弱性を調べられます。
今回はどれくらい手軽に行えるか実際にやってみます。ハリーポッターで言う「闇の魔術に対する防衛術」のコーナーですね。悪い人がどのような手段でアプリを解析するか知り、防衛方法を模索するというわけです。くれぐれも悪用しないでくださいw
知らない方にとってはちょっとした恐怖体験ですねw
続きを読む