Guest User

Untitled

a guest
Jul 7th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Created by JetBrains PhpStorm.
  3.  * User: frostmoon
  4.  * Date: 11.03.12
  5.  * Time: 22:10
  6.  * To change this template use File | Settings | File Templates.
  7.  */
  8. var http = http = require('http');
  9. var sys = require('util');
  10.  
  11.  
  12. exports.doAction = function(req, res, queryString){
  13.     if (req.url == "/favicon.ico"){
  14.         return;
  15.     }
  16.     var urlPath = require('url').parse(req.url, true).path.split('/');
  17.  
  18.     // получаем action & target
  19.     var currentAction = urlPath[1];
  20.     var currentTarget = urlPath[2];
  21.  
  22.     if(currentAction == '/' || currentAction == '') {
  23.         currentAction = 'main';
  24.     }
  25.     if(typeof(currentTarget) == 'undefined'){
  26.         currentTarget = '0';
  27.     }
  28.  
  29.     res.writeHead(200, {'content-type':'text/html; charset=utf-8'});
  30.     try {
  31.         getContext(res, req, {action: currentAction, target: currentTarget, query: queryString});
  32.     } catch(e) {
  33.         res.end('Ошибка 404');
  34.     }
  35. }
  36.  
  37.  
  38. function getPage(res, context, route){
  39.     var fs = require('fs');
  40.     var njst = require('./njst');
  41.     var sys = require('util');
  42.  
  43.     fs.readFile(__dirname + '/tpl/' + route.action + '.tpl', function (err, data) {
  44.         if (err) return;
  45.         var out = njst.parse(data, context, {debug:1});
  46.         res.end(out);
  47.     });
  48. }
  49.  
  50.  
  51. function getContext(res, req, route){
  52.     mysql = require('C:/Users/frostmoon/node_modules/mysql');
  53.  
  54.     client = mysql.createClient();
  55.     client.host='127.0.0.1';
  56.     client.user='root';
  57.     client.password='';
  58.     client.database='node';
  59.  
  60.     eval(route.action + '(res, route, client, req)');
  61. }
  62.  
  63.  
  64. function main(res, route, client){
  65.     client.query('SELECT * FROM `topics` ORDER BY `id` ASC', function(error, result, fields){
  66.         var context = {
  67.             ProjectName: 'ПростоБлог',
  68.             Title: 'Главная',
  69.             Posts: null,
  70.             error: null
  71.             };
  72.         if(result.length > 0){
  73.             context.Posts = result;
  74.             context.error = false;
  75.         } else {
  76.             context.Posts = null;
  77.             context.error = true;
  78.         }
  79.         client.end();
  80.         getPage(res, context, route);
  81.     });
  82. }
  83.  
  84.  
  85. function delpost(res, route, client){
  86.     client.query('DELETE FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
  87.         if(result.length < 1){
  88.             res.end('Ошибка 404');
  89.         }
  90.  
  91.         var context = {
  92.             ProjectName: 'ПростоБлог',
  93.             Title: 'Пост удален!',
  94.             };
  95.         client.end();
  96.         getPage(res, context, route);
  97.     });
  98. }
  99.  
  100.  
  101. function view(res, route, client){
  102.     client.query('SELECT * FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
  103.         if(result.length < 1){
  104.             res.end('Ошибка 404');
  105.         }
  106.  
  107.         var context = {
  108.             ProjectName: 'ПростоБлог',
  109.             Title: result[0]['title'],
  110.             Post: result[0],
  111.             };
  112.         client.end();
  113.         getPage(res, context, route);
  114.     });
  115. }
  116.  
  117. function add(res, route, client, req){
  118.     if(route.target == 'ready'){
  119.         route.action = 'ready';
  120.  
  121.         client.query('INSERT INTO `topics`(`id`, `title`, `text`, `author`, `time`) VALUES (\'\', \'' +  route.query.title +'\', \'' + route.query.post + '\', \'root\', \'123\')', function(error, result, fields){
  122.             var context = {
  123.                 ProjectName: 'ПростоБлог',
  124.                 Title: 'Новость добавлена! ',
  125.                 };
  126.             client.end();
  127.             getPage(res, context, route);
  128.         });
  129.     } else {
  130.         route.action = 'add';
  131.  
  132.         var context = {
  133.             ProjectName: 'ПростоБлог',
  134.             Title: 'Добавление новости',
  135.             };
  136.         getPage(res, context, route);
  137.     }
  138. }
  139.  
  140. function edit(res, route, client, req){
  141.     if(route.query.edit == 'true'){
  142.         client.query('UPDATE `topics` SET `title` = \'' + route.query.title +'\', `text` =\'' + route.query.post +'\' WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
  143.             var context = {
  144.                 ProjectName: 'ПростоБлог',
  145.                 Title: 'Новость изменена!',
  146.                 pTitle: route.query.title,
  147.                 pText: route.query.post,
  148.                 pId: route.target
  149.                 };
  150.             client.end();
  151.             getPage(res, context, route);
  152.         });
  153.     } else {
  154.         client.query('SELECT * FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
  155.             var context = {
  156.                 ProjectName: 'ПростоБлог',
  157.                 Title: 'Правка новости',
  158.                 pTitle: result[0].title,
  159.                 pText: result[0].text,
  160.                 pId: route.target
  161.                 };
  162.             getPage(res, context, route);
  163.         });
  164.     }
  165. }
Add Comment
Please, Sign In to add comment