Advertisement
Guest User

Node js - Linked Stylesheet not loading... port issue?

a guest
Apr 12th, 2015
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* **************** server.js ***************** */
  2.  
  3. var http = require('http');
  4. http.createServer(function(req, res) {
  5.     // var db = require('./db');
  6.     var callback = require('./callback');
  7.     console.log('Recieving request...');
  8.  
  9.     if (req.url == '/' && req.method == 'GET') {
  10.         callback.static_callback(res,'./index.html');
  11.     }
  12. }).listen(8080, '127.0.0.1');
  13.  
  14. /* ************* sockets_server.js ************ */
  15.  
  16. var mysql = require('mysql');
  17. var connection = mysql.createConnection({
  18.     host : '127.0.0.1',
  19.     user : 'root',
  20.     password : 'password',
  21.     database : 'testdb'
  22. });
  23. var client = require('socket.io').listen(9000).sockets;
  24.  
  25. connection.connect(function(err) {
  26.     if (!err) {
  27.         console.log('Database is connected ...');
  28.         client.on('connection', function(socket) {
  29.             var sendStatus = function(s) {
  30.                 socket.emit('status', s);
  31.             };
  32.            
  33.             // Emit all messages
  34.             var select_query = 'SELECT * FROM chat';
  35.             connection.query(select_query, function(err, results) {
  36.                 if (err) {
  37.                     console.log('error selecting from table');
  38.                 } else {
  39.                     var json = JSON.stringify(results);
  40.                     socket.emit('output', json);
  41.                 }
  42.             });
  43.            
  44.             // wait for input
  45.             socket.on('input', function(data) {
  46.                 var name = data.name;
  47.                 var message = data.message;
  48.                 var whitespacePattern = /^\s*$/;
  49.                 if (whitespacePattern.test(name) || whitespacePattern.test(message)) {
  50.                     sendStatus('Name and message is required.');
  51.                 } else {
  52.                     var insert_query = 'INSERT INTO chat (name, message) VALUES ("'+name+'", "'+message+'");';
  53.                     connection.query(insert_query, function(err, results) {
  54.                         if (err) {
  55.                             console.log('invalid query');
  56.                         } else {
  57.                             // Emit latest message to ALL clients
  58.                             console.log(data);
  59.                             client.emit('output', data);
  60.                             sendStatus({
  61.                                 message: 'Message sent.',
  62.                                 clear: true
  63.                             });
  64.                         }
  65.                     });
  66.                 }
  67.             });
  68.         });
  69.     } else {
  70.         console.log('Error connecting database ...');
  71.     }
  72. });
  73.  
  74. /* *************** callback.js **************** */
  75.  
  76. module.exports = {
  77.     static_callback: function(res, path) {
  78.         res.writeHead(200, {
  79.             'Content-Type' : 'text/html'
  80.         });
  81.         var fs = require('fs');
  82.         var content = fs.readFileSync(path);
  83.         res.write(content);
  84.         res.end();
  85.     },
  86.    
  87.     dynamic_callback: function(err, result) {
  88.         res.writeHead(200, {
  89.             'Content-Type' : 'application/json'
  90.         });
  91.         res.write(result);
  92.         res.end();
  93.     }
  94. };
  95.  
  96. /* **************** index.html **************** */
  97.  
  98. <!DOCTYPE html>
  99. <html>
  100. <head>
  101.     <title>Chat</title>
  102.     <link rel="stylesheet" href="styles/main.css" media="all" />
  103. </head>
  104. <body>
  105.     <div class="chat">
  106.         <input type="text" class="chat-name" placeholder="Enter your name" />
  107.         <div class="chat-messages"></div>
  108.         <textarea placeholder="Type your message"></textarea>
  109.         <div class="chat-status">Status: <span>Idle</span></div>
  110.     </div>
  111.     <script src="http://127.0.0.1:9000/socket.io/socket.io.js"></script>
  112.     <script>
  113.         (function() {
  114.             var getNode = function(s) {
  115.                 return document.querySelector(s);
  116.             },
  117.            
  118.             // get required nodes
  119.             status = getNode('.chat-status span'),
  120.             messages = getNode('.chat-messages'),
  121.             textarea = getNode('.chat textarea'),
  122.             chatName = getNode('.chat-name'),
  123.            
  124.             statusDefault = status.textContent,
  125.             setStatus = function(s) {
  126.                 status.textContent = s;
  127.                
  128.                 if (s !== statusDefault) {
  129.                     var delay = setTimeout(function() {
  130.                         setStatus(statusDefault);
  131.                         clearInterval(delay);
  132.                     },3000);
  133.                 }
  134.             };
  135.             try {
  136.                 var socket = io.connect('http://127.0.0.1:9000');
  137.                
  138.             } catch(e) {
  139.                 // set status to warn user
  140.                 setStatus('Unable to connect.');
  141.             }
  142.            
  143.             if (socket !== undefined) {
  144.                
  145.                
  146.                 socket.on('output', function(data) {
  147.                     // console.log(data.length+' -- '+data);
  148.                    
  149.                     var processed_data = [];
  150.                     // console.log(data);
  151.                     if (typeof data !== 'object') {
  152.                         data = JSON.parse(data);
  153.                     } else {
  154.                         data = [data];
  155.                     }
  156.                    
  157.                     console.log(data);
  158.                    
  159.                     // console.log(data.length);
  160.                    
  161.                     if (data.length > 0) {
  162.                        
  163.                         // Loop through results
  164.                        
  165.                         for (var x = 0; x < data.length; x=x+1) {
  166.                             var message = document.createElement('div');
  167.                             message.setAttribute('class','chat-message');
  168.                             message.textContent = data[x]['name'] + ': ' + data[x]['message'];
  169.                             // append
  170.                             messages.appendChild(message);
  171.                             // messages.insertBefore(message, messages.firstChild);
  172.                         }
  173.                        
  174.                     }
  175.                 });
  176.                
  177.                 // Listen for status
  178.                
  179.                 socket.on('status', function(data) {
  180.                     setStatus((typeof data === 'object') ? data.message : data);
  181.                     if (data.clear === true) {
  182.                         textarea.value = '';
  183.                     }
  184.                 });
  185.                
  186.                
  187.                 // Listen for keydown
  188.                 textarea.addEventListener('keydown', function(event) {
  189.                     var self = this;
  190.                     var name = chatName.value;
  191.                    
  192.                     // console.log(event.which); // gives the number value for which key is pressed
  193.                     if (event.which === 13 && event.shiftKey === false) {
  194.                         // console.log('Send!');
  195.                         socket.emit('input', {
  196.                             name: name,
  197.                             message: self.value
  198.                         });
  199.                     }
  200.                    
  201.                 });
  202.             }
  203.         })();
  204.     </script>
  205. </body>
  206. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement