споткнулся

При более внимательном рассмотрении обнаружил крайне медленную обработку юзерагента модулем Дэна Гроссмана node-browscap, что есть дюже пичалька. Некоторое увеличение скорости описано в пулах, но, по-моему, этого мало и недостойно ноды.

ps Именно этот форк оказался вполне достойным, скорость резко подскочила.

ну вот и ладненько

Мои блуждания по манам ноды, экспресса и прочих фитюлек закончились тем, что я перенес с малинки на продакшн сервер черновик нового детектора своей TDS, которую я модернизирую. Два дня пинал, пока завелось. Там, в четвертой версии, было так — и детектор и админка были на php+js+mysql, без фреймворков, сейчас хочу сделать детектор на node.js+express, админку начал на Yii v.1, перенесу на Yii v.2, и на этом успокоюсь. Вот черновичок детектора, там достаточно ясно как его делать и развивать, если кому нужно, все идеи там уже заложены. Язык браузера надо брать из req.headers, если кто не понял.

var express=require('express');
var router=express.Router();
var useragent=require('useragent');//https://github.com/3rd-Eden/useragent
var cookieParser=require('cookie-parser');
var bodyParser=require('body-parser');
var app=express();
var cookie=require('cookie');
app.use(cookieParser());
var http=require('http');

var browscap = require('browscap');//https://github.com/dangrossman/node-browscap
browscap.setIni('./node_modules/browscap/browscap.ini');
var browser = browscap.getBrowser("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WinTSI 05.11.2009)");
//Will print "IE 8.0"
console.log(browser);

var mysql      = require('mysql');//https://www.npmjs.com/package/mysql
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : '',
  password : ''
});

connection.connect();

var row='';

connection.query('SELECT * from tasks', function(err, rows, fields) {
  if (err) throw err;
  row=rows[0].filters_data;
  console.log('The task is: ', rows[0].filters_data);
});

var geoip=require('geoip');//https://www.npmjs.com/package/geoip
var Country=geoip.Country;
var country=new Country('node_modules/geoip/deps/GeoIP-1.6.2/data/GeoIP.dat');
var country_obj=country.lookupSync('8.8.8.8');
console.log(country_obj);

connection.end();
router.get('/',function(req,res){

	var agent=useragent.parse(req.headers['user-agent']);
	if(req.cookies.qq!='qq'){res.cookie('qq','qq',{maxAge:86400000,httpOnly:true});};
	res.send(
		agent+'<br>'+row+'<br>referer:'+req.headers['referer']+'<br>'+
		req.cookies.qq+'<br>ip:'+req.ip+'<br>'+
		req.query.t');
	console.log("Cookies: ",req.cookies)
	console.log("headers: ",req.headers)
	});

module.exports=router;

чем дальше, тем дальше

Только бабайка знает, куда приведет мое увлечение node.js, хочу сделать детектор моей тдски на нем и админку на yii 2. Разбирал книжку Дэвида Хэррона «Node.js Разработка серверных веб-приложений на JavaScript», дошел до коннекта и экспресса, и тут посыпались ошибки, оказывается они очень бурно развиваются и книжка уже устарела, перешел на мануалы сайтов производителей сих славных вещей.