まとまった時間取れないから、罠だらけのモジュールにて何日も苦労した・・・
ググっても知見がなさすぎるのでメモ。
node V6.3.1にて
ググっても知見がなさすぎるのでメモ。
node V6.3.1にて
バッチ処理的な物をどうしても同期してmysqlをさわらないといけないのだが、
いろいろハマりポイントが多いのでメモしておく。<!!!NG例!!!>
const Promise = require('bluebird');
global.db = Promise.promisifyAll(connection);
db.queryAsync("SELECT * FROM users;")
.then(function(rows){console.log(rows);})
promisifyAll(connection)で作ったqueryAsyncが正常に終了しない。
値はとれて同期してるんだけど、戻ってこない。
よくわかんないから追わないことにした。
const mysql = require('promise-mysql');
だけど、これどうやって別のbluebirdのcoroutineとくっつけるんだろ?たぶんできると思うけど・・・
エラーハンドリングも雑でいいので、本当はyieldで書いてすっきりさせたい。
co-mysqlでジェネレータで動かす奴を動作するのか確認してみる。
もはやここまで来たら見慣れたソースとか関係ねぇスッキリさせることに注力するしか!
もはやここまで来たら見慣れたソースとか関係ねぇスッキリさせることに注力するしか!
Android PromiseとかJdefferedなど俺はこういうのやたら悩む傾向がある。
デザインパターンを理解してないんだろうか?w
なんだかんだで用途がシンプルなjQueryは偉大だなと痛感したわ。
<追記>
以下2種類のモジュールがあるが、そのままでプロセス抜けれるのがmysql-coで。
思った以上にnodeがこなれてなくて泣ける。
本当にエンタープライズ用に機能してんのか?!
co-mysql: 正常終了できない・・・createPool, createConnectionともにダメ。
無理やり終わらすしかない .then((data) => { console.log(data);process.exit(); })
この問題が解けたら、ちょっとしたツールは今後すべてnodeを使うことにしよっかなー
0 件のコメント:
コメントを投稿