月別アーカイブ: 2017年4月

node.jsでMySQLを使う


node.jsでMySQLを使う場合、ググるといっぱい出てきます。

クラスメソッドのブログ

Qiitaの記事

npmにMySQLのライブラリがありますので、それを使用します。
MySQLのnpm
READMEによると下記のように使用します。

ライブラリのインストール

$ npm install mysql

接続情報とクエリーの実行

createConnection関数でMySQLのホスト名、ユーザー名、パスワードなどを定義し、
query関数でSQLを実行、コールバック関数で結果を受け取ります。

もうちょっと使いやすく

1ファイルに記述するのは上記のやり方で十分ですが、
実際には、接続情報は1箇所に記述したいですし、コネクションプールも使いたいかなと。
下記サイトが参考になりました。

How To Use MySQL With Node & Express

一部抜粋します。

本番用、テスト用のモードを指定し、使用するデータベースを分けています。
また、createPool関数でコネクションプールを使うようになっています。

以上です。


スクレイピング-SpookyJS編-


前回 CasperJSでスクレイピングしましたが、node.jsからは使用できなかったので、
node.jsから使用できるSpookyJSでスクレピングしてみました。

SpookyJS公式

SpookyJSはnode.jsからCasperJSを起動するようにしたライブラリです。
casperjsコマンドを内部で実行しているようです。

簡単なサンプルを作りました。GitHub

SpookyJSのインストール

CasperJS、PhantomJSのインストールも必要です。
SpookyJS自体はnpmでインストールできます。

$ npm install spooky

SpookyJSでスクレイピングする処理を書く

googleで”スクレイピング”を検索し、結果を表示します。

spooky.then内で定義している関数がPhantomJS内で実行されるJavaScriptになります。
‘load’イベントを作成し、その引数にCSSセレクタで指定した要素からhref属性を取得し、そのhrefを返します。
spooky.on(‘load’・・・で定義したところでイベントを受信します。
この動作自体はCasperJSと同じですが、SpookyJSなら受け取った値をmysqlのライブラリを使ってDBへ登録など、
node.jsのライブラリをも使うことができます。
CasperJSのwaitTimeoutやstepTimeoutも指定することができるので、Ajaxのページでも値が取ることができます。

以上です。