Guest User

Untitled

a guest
Jan 25th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. var express = require('express');
  2.  
  3. var app = module.exports = express.createServer();
  4. app.register('.html', require('jade'));
  5. // Configuration
  6. app.configure(function () {
  7. app.set('views', __dirname + '/views');
  8. app.set('view engine', 'jade');
  9. app.use(express.bodyParser());
  10. app.use(express.methodOverride());
  11. app.use(app.router);
  12. app.use(express.static(__dirname + '/public'));
  13. });
  14.  
  15. app.configure('development', function () {
  16. app.use(express.errorHandler({
  17. dumpExceptions: true,
  18. showStack: true
  19. }));
  20. });
  21.  
  22. app.configure('production', function () {
  23. app.use(express.errorHandler());
  24. });
  25.  
  26.  
  27. var sys = require('sys');
  28.  
  29. var Client = require('mysql').Client;
  30. var client = new Client();
  31.  
  32. client.database = 'db';
  33. client.host = "localhost";
  34. client.user = 'root';
  35. client.password = '';
  36.  
  37. client.connect(function (error, results) {
  38. if (error) {
  39. console.log('Connection Error: ' + error.message);
  40. return;
  41. }
  42. console.log('Connected to MySQL');
  43. });
  44.  
  45.  
  46. var ids = new Array();
  47.  
  48. client.query('select id,level from u_log order by create_time desc limit 10000', function (error, results, fields) {
  49. for (var i = 0; i < results.length; i++) {
  50. ids.push(results[i]['id'])
  51. }
  52. console.log("Load " + ids.length + " user ids.")
  53. client.end();
  54. });
  55.  
  56.  
  57. Array.prototype.has = function (v) {
  58. for (i = 0; i < this.length; i++) {
  59. if (this[i] == v) return i;
  60. }
  61. return false;
  62. }
  63.  
  64. fetchFriendIds = function () {
  65. if (ids.length <= 100) {
  66. if (ids.length <= 12) {
  67. return ids;
  68. }
  69. return ids.slice(0, 12);
  70. }
  71. var i = 0;
  72. var r = [];
  73. while (i < 12) {
  74. var n = Math.floor(Math.random() * (ids.length));
  75. console.log(n)
  76. if (!r.has(n)) {
  77. r.push(n)
  78. i++;
  79. }
  80. }
  81. return r;
  82. }
  83. var db = require('mongojs').connect('192.168.1.112/test', ['user_info']);
  84. var cache = {};
  85.  
  86. app.get('/', function (req, res) {
  87. // 获取推荐好友列表
  88. t = fetchFriendIds();
  89. var us = [];
  90. var fids = [];
  91. //检查缓存
  92. for (var i = 0; i < t.length; i++) {
  93. var uid = t[i];
  94. if (cache[uid] != null) {
  95. us[uid] = cache[uid];
  96. } else {
  97. fids.push(uid);
  98. }
  99. }
  100.  
  101. db.user_info.find({
  102. "a": {
  103. "$in": fids
  104. }
  105. }).forEach(function (a, u) {
  106. if (u != null) {
  107. var r = {};
  108. var id = u['a'];
  109. r['id'] = id;
  110. r['pic'] = u['d'];
  111. r['name'] = u['c'];
  112. cache[id] = r;
  113. us.push(r);
  114. }
  115. if (a == null && u == null) {
  116. // 循环结尾,输出到web
  117. res.render('index', {
  118. users: us
  119. });
  120. }
  121. });
  122. });
  123.  
  124. app.listen(3000);
  125. console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
Add Comment
Please, Sign In to add comment