app.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * Created by root on 2015-07-20.
  3. */
  4. var restify = require('restify');
  5. var loginRecordProvider = require('./database/loginRecord');
  6. var BufferHelper = require('bufferhelper');
  7. var db = require('./database/db');
  8. var server = restify.createServer({
  9. name: 'BehaviorMonitor',
  10. version: '1.0.0'
  11. });
  12. server.use(restify.acceptParser(server.acceptable));
  13. server.use(restify.queryParser());
  14. server.use(restify.bodyParser());
  15. server.post('/api/loginrecord', function(req, res)
  16. {
  17. var bufferHelper = new BufferHelper();
  18. req.on('data',function(chunk)
  19. {
  20. bufferHelper.concat(chunk);
  21. });
  22. req.on('end', function()
  23. {
  24. try
  25. {
  26. var chunks = bufferHelper.toBuffer().toString();
  27. console.log('receive data:\n'+chunks);
  28. var json = JSON.parse(chunks);
  29. json.gateway = getRemoteAdress(req);
  30. return loginRecordHandler(res, json, chunks);
  31. }
  32. catch (ex)
  33. {
  34. console.log('error:'+ex);
  35. return error(res,'data format error.');
  36. }
  37. });
  38. });
  39. function getRemoteAdress(req)
  40. {
  41. var ip = req.headers['x-forwarded-for'] ||
  42. req.connection.remoteAddress ||
  43. req.socket.remoteAddress ||
  44. req.connection.socket.remoteAddress;
  45. return ip;
  46. };
  47. function loginRecordHandler(res,msg,raw)
  48. {
  49. if(!msg.loginName)
  50. return error(res,'loginName is null.');
  51. loginRecordProvider.insert(msg, function(err)
  52. {
  53. if(err)
  54. error(res,error);
  55. else
  56. return ok(res);
  57. });
  58. };
  59. function error(res,error)
  60. {
  61. console.log(error);
  62. sendJSON(res,0,error);
  63. };
  64. function ok(res)
  65. {
  66. sendJSON(res,1,'ok');
  67. };
  68. db.active(function(err){
  69. if (err)
  70. console.log(err);
  71. else
  72. server.listen(8080, function () {
  73. console.log('%s listening at %s', server.name, server.url);
  74. });
  75. });