読者です 読者をやめる 読者になる 読者になる

node.js v0.11.0 化への試行メモ

自メモ)

変に短縮されたが


hogehoge-XXX.XXX.dat
の時どうも誤動作してるっぽい。
express 自体を更新してみても効果なし


追記)

とりあえず最新版で動かして様子を見てみる

現在テスト環境が
次の日になってると繋がらなくなっている状態(reconectが発行されていないよう)


最新版入れるなら


npm install mysql@2.0.0-alpha7
npm install express@3.0.0beta7

な感じで [モジュール名@バージョン] の形式で指定




node.js更新自体


curl -O http://nodejs.org/dist/v0.11.0/node-v0.11.0.tar.gz
tar -xvzf node-v0.11.0.tar.gz
cd node-v0.11.0
./configure
sudo make
sudo make install

前verに戻す場合


curl -O http://nodejs.org/dist/v0.8.22/node-v0.8.22.tar.gz
tar -xvzf node-v0.8.22.tar.gz
cd node-v0.8.22
./configure
sudo make
sudo make install

すでにmake済みなら


sudo make install
で上書きすればOK。




npm install mysql

DB接続処理>

旧)

  • node_modules/hogeDBM.js
exports.connectDB = function() {
	var client = mysql.createClient({
		user: exports.user,
		password: exports.password,
		host: exports.host,
		database: exports.database
	});
    return client;
}

メイン側>

  • hogeServer.js
  var db      = require('hogeDBM');
  var client = db.connectDB();


app.configure(function (){
    app.use(parted({
        path: __dirname + '/tmp',
        multiple:true
    }));
    app.enable('jsonp callback');
    app.register('.ejs', ejs);
    app.set('view options', { layout: false });
});



  //DB再接続チェック & 再接続処理
  if(client==null || !client.connected){
		console.log('====[/list] reconect_db====');
		if(client!=null)client.end();
 		client = db.connectDB();
		if(client==null || !client.connected){
			process.exit();
			return;
		}
  }


process.on('uncaughtException', function (err) {
    console.log('uncaughtException => ' + err);
    process.exit();
});


新)

  • node_modules/hogeDBM.js
exports.connectDB = function() {
	var client = mysql.createConnection({
		user: exports.user,
		password: exports.password,
		host: exports.host,
		database: exports.database,
		insecureAuth:true
	});

    client.connect(function(err) {
        // connected! (unless `err` is set)
        console.log("err="+err);
    });

    handleDisconnect(client)
    return client;
}

function handleDisconnect(connection){
  myconnection.on('error', function(err){

    console.log('\nRe-connecting lost connection: ' + err.stack);
    // connection.destroy();
    if(connection!=null)connection.end();
    connection = mysql.createConnection({
		user: exports.user,
		password: exports.password,
		host: exports.host,
		database: exports.database,
		insecureAuth:true
    });
    handleDisconnect(connection);
    // connection.connect();
  });
}

メイン側>

  • hogeServer.js
  var db      = require('hogeDBM');
  var client = db.connectDB();

app.configure(function (){
    app.use(parted({
        path: __dirname + '/tmp',
        multiple:true
    }));
    app.enable('jsonp callback');
    //app.register('.ejs', ejs);   //☆エラーが出るのでコメント
    app.set('view options', { layout: false });
});


process.on('uncaughtException', function (err) {
    console.log('uncaughtException => ' + err);
    if(client!=null)client.end();
	process.exit();
});



検索メモ)


fibers 辺使えって話が出てくるんだけど

同期化自体は
現在は node-asyncあたりでやってる感じ
どっちがいい感じなんだろう?


node.js)


express3)