[JavaScript] node.js erste geh versuche

Dieses Thema im Forum "Webentwicklung" wurde erstellt von onip, 12. Mai 2011 .

  1. 12. Mai 2011
    node.js erste geh versuche

    hi,

    beschäftige mich gerade mit node.js.
    hab über VMware ubuntu aufgespielt, xampp drauf und node.js installiert.
    läuft soweit alles prima.

    Code:
    var sys = require("sys");
    sys.puts("Hello World!");
    
    terminal gibt "Hello World!" aus.
    selbst das chat demo geht.
    jetzt gehe ich step by step mal durch um zu verstehen wie das alles abläuft.

    hab ein weiters tut genommen.
    Code:
    var sys = require("sys"), 
    http = require("http"); 
    
    http.createServer(function(request, response) { 
     var txt = "Hello World!"; 
     response.writeHeader(200, { 
     "Content-Type": "text/html"
     }); 
     response.end(txt);
    }).listen(8080); 
    
    sys.puts("Server running at http://localhost:8080/");
    
    geht.

    damit wollte ich etwas mit intervall und schleifen rumspielen.
    Code:
    var sys = require("sys"), 
    http = require("http"); 
    
    http.createServer(function(request, response) { 
     var txt = "Hello World!"; 
     response.writeHeader(200, { 
     "Content-Type": "text/html"
     });
     
     setInterval(function(){
     response.end("Hello World!");
     }, 1000);
    }).listen(8080); 
    
    ausgabe kommt nach 1er sek. aber nur einmal, bei einer schleife auch.
    liegt wohl am end().
    was gibt es noch für ausgabe statt end()?
    besser gesagt, wie geh ich vor um ausgsaben zu machen?
     
  2. 12. Mai 2011
    AW: node.js erste geh versuche

    .write()

    siehe doku: Node.js v0.10.28 Manual & Documentation
     
  3. 12. Mai 2011
    AW: node.js erste geh versuche

    write hatte ich natürlich versucht, ging nicht.
    hab etwas umgestellt, schwubs es läuft.
    Code:
    var sys = require("sys"), 
    http = require("http"); 
    
    var i = 0;
    var inter;
    http.createServer(function(request, response) { 
     var txt = "Hello World!"; 
     response.writeHeader(200, { 
     "Content-Type": "text/html"
     });
     inter = setInterval(function(){
     i++;
     if (i>4){
     clearInterval(inter);
     response.end("end");
     }
     response.write("Hello World!"+i+"<br>");
     }, 1000);
    }).listen(8080); 
    
    danke
     
  4. 12. Mai 2011
    AW: node.js erste geh versuche

    mit nem einfachen "\n" am ende der nachricht sollte es auch klappen.
     
  5. 17. Mai 2011
    AW: node.js erste geh versuche

    so, weiter geht's
    hab noch ein tut gefunden, dass ein formular erstellt und nach senden die werte ausgibt.
    HTML:
    var http = require('http'),
     sys = require('sys'),
     querystring = require('querystring');
    
    // Create the listening server
    http.createServer(function(request, response) {
     sys.puts('Request for ' + request.url);
     
     switch (request.url) {
     case '/':
     response.writeHead(200, {
     'Content-Type' : 'text/html'
     });
     response.write(
     '<form action="/post_to_me" method="post">' +
     'Field 1: <input type="text" name="field_1"><br />' +
     'Field 2: <input type="text" name="field_2"><br />' +
     '<input type="submit" value="Submit">' +
     '</form>'
     );
     response.end();
     break;
     case '/post_to_me':
     response.writeHead(200, { 'Content-Type' : 'text/html' });
     
     post_handler(request, function(request_data){
     response.write(
     'Full JSON object:<br />' +
     '<pre>' + sys.inspect(request_data) + '</pre>' +
     '<hr>' +
     'Indivudual parameters:<br />' +
     'Field 1: <strong>' + request_data.field_1 + '</strong><br />' +
     'Field 2: <strong>' + request_data.field_2 + '</strong><br />' +
     '<a href="/">goBack</a><br />'
     );
     response.end();
     });
     break;
     };
    }).listen(8080);
    
    function post_handler(request, callback) {
     var _REQUEST = { };
     var _CONTENT = '';
     
     if (request.method == 'POST') {
     request.addListener('data', function(chunk) {
     _CONTENT+= chunk;
     });
     
     request.addListener('end', function() {
     _REQUEST = querystring.parse(_CONTENT);
     callback(_REQUEST);
     });
     };
    };
    
    sobald man sendet passiert doch genau das was normaler weise geschieht.
    anfrage auswerten und seite neu laden.
    was ist nun dabei der unterschied?
    dachte eher das vielleicht die url z.b. #/post_to_me lauten sollte um die seite nicht zu verlassen,
    meine auswertungen mache und das html ausgeben kann.

    oder verstehe ich da was falsch?
     
  6. 17. Mai 2011
    AW: node.js erste geh versuche

    wieso sollte das der fall sein?

    node.js (auch wenn es javascript ist) läuft eigenständig und weiß im grunde nicht, dass es html produziert hat oder es an einen browser ausliefert (diesen irrglaube kennt man auch von PHP-anfängern ).

    um dieses verhalten zu implementieren musst du ganz normal am client ansetzen und mit ajax arbeiten.

    ---

    auch wenn es möglich ist mit node.js formulare zu verarbeiten, ist das mmn. nicht der eigl. einsatzweck. vielmehr sinn macht node.js für websockets oder kleine server (für ajax-anfragen).

    ich denke du kamst auf node.js durch den upload-thread oder? lass dir gesagt sein, dass ich damit lediglich den upload verarbeitet habe, der rest des forumlars wandert bei mir wie gewohnt an ein php-script.

    zumindest arbeite ich noch dran, die client seite ist noch ein wenig problematisch ^^
     
  7. 18. Mai 2011
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: node.js erste geh versuche

    ja hast recht.
    node.js kam aus dem upload-thread.
    hab es recht einfach ans laufen bekommen und hab natürlich den gedanken,
    dass man damit webseiten zum rennen bekommt.
    du meinst also, dass es sinnvoll ist node.js nur dann zu verwenden,
    wenn z.b. chats, uploads oder ähnliches genutzt wird.
    also wenn eine permanente komunikation zwischen client und server statt finden soll.
    dann ist ein einfaches formular natürlich nicht der richtige einsatz für node.js.

    ein funktionierendes uploaden mit progess hab ich auch gefunden.
    kennst du warscheinlich schon.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.