Repozytorium Web Developera

Node.js

Przydatne linki

EventEmitter

On Event Listener

Emitter nasłuchuje na eventy danego typu i odpowiada na nie callbackiem. Prościej mówiąc, powiadamia obiekt o zajściu jakiegoś zdarzenia. Obiekt informujący to publisher, a obiekt odbierający czy przechwytujący to subscriber.


var EventEmitter = require('events').EventEmitter;
var myEmitter = new EventEmitter;

var connection = function(id){
        //do something
}

myEmitter.on('connection', connection);

myEmitter.on('message', function(msg){
        //do something
});

myEmitter.emit('connection', 6);

myEmitter.emit('message', 'this is the first message');

Once Event Listener

Odpowiednik powyższego, ale czeka jedynie na pierwsze wystąpienie zdarzenia.

Moduły

Tworzenie modułu w postaci pakietu

W celu stworzenia pakietu należy utworzyć folder o nazwie pakietu, a wewnątrz plik JavaScript z kodem modułu i exports jego metod. Należy również utworzyć plik package.json z informacjami o pakiecie oraz plik README.md. Następnie w głównym katalogu należy wykonać polecenie npm pack. Moduł w formacie tgz można opublikować w rejestrze NPM. W tym celu należy utworzyć publiczne repozytorium z kodem modułu (np. git), utworzyć konto na stronie npmjs.org i do środowiska systemowego dodać użytkownika za pomocą komendy npm adduser. Plik package.json uzupełnić o dane repository i keywords, a następnie użyć komendy npm publish do publikacji modułu.
Na podstawie podrozdziału Tworzenie aplikacji Node.js strona 68 z 3 rozdziału książki Node.js, MongoDB, AngularJS - Kompendium wiedzy. Brad Dayley

Moduł http

Poniższy kod tworzy prosty serwer HTTP, który działa na porcie 8081. Na każde połączenie wysyła komunikat o treści 'Welcome (...)'. Wystarczy uruchomić adres http://localhost:8081/ w przeglądarce internetowej.


var http = require('http'); // ładowanie modułu HTTP

// utworzenie serwera z objektem żądania req i odpowiedzi res,
// który obsługuje klienta dzięki tym obiektom
var server = http.createServer(function(req, res) {

    // sprawdzamy jakiej strony żąda użytkownik,
    // jeśli innej niż główna to wyświetlamy kod z instrukcji else
    if(req.url == '/') {
        res.write('Welcome to HTTP Server on Node.js');
        res.end();
    } else {
        res.write('Welcome to HTTP Server on Node.js');
        res.write(' You have requested url: ' + req.url);
        res.end();
    }
});

// aktywujemy proces nasłuchiwania
server.listen(8081);
console.log('Server is running on port 8081');

Moduł https

Poniższy serwer wykorzystuje szyfrowanie w komunikacji.


var https = require('https');
var fs = require('fs');

var options = {
        key: fs.readFileSync('.ssl/myserver.key'),
        cert: fs.readFileSync('.ssl/myserver.crt'),
        passphrase: '12345'
};

var server = https.createServer(options, function(req, res) {
        res.write('Welcome to HTTPS Server on Node.js');
        res.end();
});

server.listen(8081);
console.log('Server is running on port 8081');