me@helium 8 лет назад
Родитель
Сommit
4bcf95bc63
3 измененных файлов с 44 добавлено и 2 удалено
  1. 1 1
      04AssociativeArraysHomeWork.md
  2. 1 1
      07ObjectsFunctionalStyleHomeWork.md
  3. 42 0
      chatServer/server.js

+ 1 - 1
04AssociativeArraysHomeWork.md

@@ -8,7 +8,7 @@
 5. Сделайте цикл, который выводит весь массив `persons` в форме объектов `console.log(persons[i])`
 6. Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте вложенный `for` для вывода полей персоны
 7. Сделайте цикл, который выводит весь массив `persons`, но только Имя и Фамилию каждой персоны. Используйте `Object.keys` и вложенный `for` для вывода полей персоны
-8. Сделайте цикл, который выводит весь массив `persons`, при этом проверяет наличие других полей, и выводит дополнительные сообщения с этими полями.
+8. Сделайте цикл, который выводит весь массив `persons`, при этом проверяет наличие других полей (кроме `name` и `surname`), и выводит дополнительные сообщения с этими полями.
    `typeof` в помощь.
 9. Сделайте цикл, которых добавляет поле `fullName`, содержащий ФИО. Учтите, что поле `fathername` не является обязательным.
 10. Создайте `JSON`-строку из `persons`

+ 1 - 1
07ObjectsFunctionalStyleHomeWork.md

@@ -85,7 +85,7 @@ father.addChild(daughter)
 
 Таким образом `getSaver` решает две задачи:
 0. Навсегда сохраняет результат функции. Это актуально, например, для `Math.random`.
-1. Действует *лениво*, то есть вызывает `Math.random` только тогда, когда результат *действительно* нужен. Если же по каким-то причинам значение не понадобится, то `Math.random` даже не будет вызыван
+1. Действует *лениво*, то есть вызывает `Math.random` только тогда, когда результат *действительно* нужен. Если же по каким-то причинам значение не понадобится, то `Math.random` даже не будет вызван
 
 ### Final Countdown
 Напишите код, который будет делать обратный ежесекундный отсчёт в консоли, используя `console.log`. Используйте **Self Invoked Function** для создания замыкания и 

+ 42 - 0
chatServer/server.js

@@ -0,0 +1,42 @@
+//to chat: http://codepen.io/anon/pen/RoaJZG?editors=0010
+http = require('http');
+var history = [];
+var messageId = 0;
+server = http.createServer(function(req, res){
+    //console.dir(req);
+    if (req.method == "POST"){
+        var body = '';
+        req.on('data', function (data) {
+                body += data;
+        });
+        req.on('end', function () {
+                console.log("Body: " + body);
+                message = JSON.parse(body);
+                if (!("messageId" in message) || Object.keys(message).length > 1){
+                    var timestamp =(new Date()).getTime(); 
+                    message.timestamp = timestamp;
+                    history[messageId] = message;
+                    messageId++;
+                }
+                if ("messageId" in message){
+                    messages = history.slice(+message.messageId);
+                    res.end(JSON.stringify({timestamp: timestamp, messageId: messageId -1, messages: messages}))
+                }
+                else {
+                    res.end(JSON.stringify({timestamp: timestamp, messageId: messageId -1}))
+                }
+        });
+
+        res.setHeader('Access-Control-Allow-Origin', '*');
+        res.setHeader('Access-Control-Request-Method', '*');
+        res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET, POST');
+        res.setHeader('Access-Control-Allow-Headers', '*');
+        res.writeHead(200, {'Content-Type': 'text/json'});
+        //res.end('post received');
+    }
+});
+
+port = 8070;
+host = '164.138.30.21';
+server.listen(port, host);
+console.log("Listen...");