server.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. function nt() {
  2. var args = Array.prototype.slice.apply(arguments, 1);
  3. var cb = arguments[0];
  4. if(args[args.length-1]) console.log(args[args.length-1]);
  5. if(!cb) console.log("nt called without a function.");
  6. process.nextTick(function() { cb.apply(this, args) });
  7. }
  8. var Promise = require('bluebird');
  9. var async = require('async');
  10. var fs = require('fs');
  11. var crypto = require('crypto');
  12. var Path = require('path');
  13. var argv = require('minimist')(process.argv.slice(2));
  14. var async = require('async');
  15. var mysql = require('mysql');
  16. var fs = require('fs');
  17. var util = require('util');
  18. var config = require('./config');
  19. if(argv.database) config.db.database = argv.database;
  20. var conn = Promise.promisifyAll(mysql.createPool(config.db));
  21. function insertUser(data, cb) {
  22. var q = 'INSERT INTO `users` (`user_hash`, `display_name`, `primary_email`, `pwd_hash`, `pwd_salt`) VALUES (?, ?, ?, ?, ?);';
  23. var d = [data.user_hash, data.display_name, data.primary_email, data.pwd_hash, data.pwd_salt];
  24. db.query(q, d, function(err, res) {
  25. if(err) {
  26. if(err.code == 'ER_DUP_ENTRY') {
  27. return nt(cb, "duplicate key.");
  28. }
  29. return nt(cb, err);
  30. }
  31. });
  32. }
  33. function insertPost(data, cb) {
  34. var q = 'INSERT INTO `posts` (`created_by`, `content`) VALUES (?, ?);';
  35. var d = [data.created_by, data.content];
  36. db.query(q, d, function(err, res) {
  37. if(err) {
  38. if(err.code == 'ER_DUP_ENTRY') {
  39. return nt(cb, "duplicate key.");
  40. }
  41. return nt(cb, err);
  42. }
  43. });
  44. }
  45. var express = require('express');
  46. var serveStatic = require('serve-static');
  47. var app = express();
  48. app.use(require('cookie-parser')());
  49. app.all('/path', function(req, res) {
  50. //req.query.compNames, sendJSON(res));
  51. });
  52. app.use('/', serveStatic('./static'));
  53. var route = express.Router();
  54. route.all('/newChirp', function(req, res) {
  55. });
  56. route.all('/newUser', function(req, res) {
  57. insertUser(req.params, function(res, err) {
  58. res.send(JSON.stringify(res));
  59. })
  60. });
  61. route.all('/all', function(req, res) {
  62. res.send(JSON.stringify(templates));
  63. });
  64. route.all('/tree/*', function(req, res) {
  65. });
  66. app.listen(config.port, function() {
  67. console.log("Listening on port " + config.port);
  68. })
  69. function sendJSON(res) {
  70. return function(err, data) {
  71. if(err) {
  72. res.status(401);
  73. res.end();
  74. return;
  75. }
  76. res.send(JSON.stringify(data || {}))
  77. }
  78. }