Node.js
Przydatne linki
- Prosty wstęp i opis środowiska uruchomieniowego Node.js (po polsku)
-
Best Practices, Design Patterns & Style Guides
- Node.js Style Guide
editorconfig, JSHint, pisanie kodu JS etc.
- Node.js Best Practices - Part 1
- Node.js Best Practices - Part 2
- Node.js design patterns
Singleton, observer, factory, dependency injection, middleware
- Node.js Style Guide
-
Testowanie
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');