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

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

var express=require('express');<br />
var router=express.Router();<br />
var useragent=require('useragent');//https://github.com/3rd-Eden/useragent<br />
var cookieParser=require('cookie-parser');<br />
var bodyParser=require('body-parser');<br />
var app=express();<br />
var cookie=require('cookie');<br />
app.use(cookieParser());<br />
var http=require('http');</p>
<p>var browscap = require('browscap');//https://github.com/dangrossman/node-browscap<br />
browscap.setIni('./node_modules/browscap/browscap.ini');<br />
var browser = browscap.getBrowser(&quot;Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WinTSI 05.11.2009)&quot;);<br />
//Will print &quot;IE 8.0&quot;<br />
console.log(browser);</p>
<p>var mysql      = require('mysql');//https://www.npmjs.com/package/mysql<br />
var connection = mysql.createConnection({<br />
  host     : 'localhost',<br />
  user     : '',<br />
  password : ''<br />
});</p>
<p>connection.connect();</p>
<p>var row='';</p>
<p>connection.query('SELECT * from tasks', function(err, rows, fields) {<br />
  if (err) throw err;<br />
  row=rows[0].filters_data;<br />
  console.log('The task is: ', rows[0].filters_data);<br />
});</p>
<p>var geoip=require('geoip');//https://www.npmjs.com/package/geoip<br />
var Country=geoip.Country;<br />
var country=new Country('node_modules/geoip/deps/GeoIP-1.6.2/data/GeoIP.dat');<br />
var country_obj=country.lookupSync('8.8.8.8');<br />
console.log(country_obj);</p>
<p>connection.end();<br />
router.get('/',function(req,res){</p>
<p>	var agent=useragent.parse(req.headers['user-agent']);<br />
	if(req.cookies.qq!='qq'){res.cookie('qq','qq',{maxAge:86400000,httpOnly:true});};<br />
	res.send(<br />
		agent+'&lt;br&gt;'+row+'&lt;br&gt;referer:'+req.headers['referer']+'&lt;br&gt;'+<br />
		req.cookies.qq+'&lt;br&gt;ip:'+req.ip+'&lt;br&gt;'+<br />
		req.query.t');<br />
	console.log(&quot;Cookies: &quot;,req.cookies)<br />
	console.log(&quot;headers: &quot;,req.headers)<br />
	});</p>
<p>module.exports=router;

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

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