mongooseからだとexecも使えない
mongooseの闇の部分を見てしまった気がする。
var db = mongoose.connect('mongodb://localhost:27017/db_name');
のコードが入ると
var exec = require('child_process').exec; exec('mongoose db_name hoge.js', function (error, stdout, stderr) { if(error !== null) console.log('error', error); });
のようなコードが実行できなくなる、というよりは反映されなくなる。
外部からシェルで実行させても上手くいかない。pwdなどは実行できるのでコネクションの問題の気もするが・・・
どうも、コネクションの問題ではなくprocessがexitされる前に実行できなかったという問題のようだった。
execブロックの中に終了処理を仕込めば良い。当然の処理を抜かすという凡ミスだった。
var exec = require('child_process').exec; exec('mongoose db_name hoge.js', function (error, stdout, stderr) { if(error !== null) console.log('error', error); // exit的処理 });
これは単純にミスの記録でしかないので、残す価値が無い。