Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by JetBrains PhpStorm.
- * User: frostmoon
- * Date: 11.03.12
- * Time: 22:10
- * To change this template use File | Settings | File Templates.
- */
- var http = http = require('http');
- var sys = require('util');
- exports.doAction = function(req, res, queryString){
- if (req.url == "/favicon.ico"){
- return;
- }
- var urlPath = require('url').parse(req.url, true).path.split('/');
- // получаем action & target
- var currentAction = urlPath[1];
- var currentTarget = urlPath[2];
- if(currentAction == '/' || currentAction == '') {
- currentAction = 'main';
- }
- if(typeof(currentTarget) == 'undefined'){
- currentTarget = '0';
- }
- res.writeHead(200, {'content-type':'text/html; charset=utf-8'});
- try {
- getContext(res, req, {action: currentAction, target: currentTarget, query: queryString});
- } catch(e) {
- res.end('Ошибка 404');
- }
- }
- function getPage(res, context, route){
- var fs = require('fs');
- var njst = require('./njst');
- var sys = require('util');
- fs.readFile(__dirname + '/tpl/' + route.action + '.tpl', function (err, data) {
- if (err) return;
- var out = njst.parse(data, context, {debug:1});
- res.end(out);
- });
- }
- function getContext(res, req, route){
- mysql = require('C:/Users/frostmoon/node_modules/mysql');
- client = mysql.createClient();
- client.host='127.0.0.1';
- client.user='root';
- client.password='';
- client.database='node';
- eval(route.action + '(res, route, client, req)');
- }
- function main(res, route, client){
- client.query('SELECT * FROM `topics` ORDER BY `id` ASC', function(error, result, fields){
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Главная',
- Posts: null,
- error: null
- };
- if(result.length > 0){
- context.Posts = result;
- context.error = false;
- } else {
- context.Posts = null;
- context.error = true;
- }
- client.end();
- getPage(res, context, route);
- });
- }
- function delpost(res, route, client){
- client.query('DELETE FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
- if(result.length < 1){
- res.end('Ошибка 404');
- }
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Пост удален!',
- };
- client.end();
- getPage(res, context, route);
- });
- }
- function view(res, route, client){
- client.query('SELECT * FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
- if(result.length < 1){
- res.end('Ошибка 404');
- }
- var context = {
- ProjectName: 'ПростоБлог',
- Title: result[0]['title'],
- Post: result[0],
- };
- client.end();
- getPage(res, context, route);
- });
- }
- function add(res, route, client, req){
- if(route.target == 'ready'){
- route.action = 'ready';
- client.query('INSERT INTO `topics`(`id`, `title`, `text`, `author`, `time`) VALUES (\'\', \'' + route.query.title +'\', \'' + route.query.post + '\', \'root\', \'123\')', function(error, result, fields){
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Новость добавлена! ',
- };
- client.end();
- getPage(res, context, route);
- });
- } else {
- route.action = 'add';
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Добавление новости',
- };
- getPage(res, context, route);
- }
- }
- function edit(res, route, client, req){
- if(route.query.edit == 'true'){
- client.query('UPDATE `topics` SET `title` = \'' + route.query.title +'\', `text` =\'' + route.query.post +'\' WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Новость изменена!',
- pTitle: route.query.title,
- pText: route.query.post,
- pId: route.target
- };
- client.end();
- getPage(res, context, route);
- });
- } else {
- client.query('SELECT * FROM `topics` WHERE `id` = \'' + route.target + '\'', function(error, result, fields){
- var context = {
- ProjectName: 'ПростоБлог',
- Title: 'Правка новости',
- pTitle: result[0].title,
- pText: result[0].text,
- pId: route.target
- };
- getPage(res, context, route);
- });
- }
- }
Add Comment
Please, Sign In to add comment