kocal-server

Serveur web minimaliste. Ce serveur est capable de rendre des fichiers textes (ou autres contenus textuels), des pages HTML, des fichiers CSS et JavaScript, et des images. Il est pour l'instant impossible de rendre des vidéos/musiques, ou des fichiers dynamiques, comme PHP ou Python. Il possède aussi un système de routing.

NodeJS-Kocal-WebServer

Ce module NodeJS est un serveur web minimaliste. Ce serveur est capable de rendre des fichiers textes (ou autres contenus textuels), des pages HTML, des fichiers CSS et JavaScript, et des images. Il est pour l'instant impossible de rendre des vidéos/musiques, ou des fichiers dynamiques, comme PHP ou Python.

Dans un terminal

$ npm install kocal-server

Pour utiliser ce module NodeJS, il faut d'abord créer un dossier qui sera la racine du serveur web. Le nom "www" pour ce dossier est recommandé. Il faut aussi créer un autre fichier, "server.js" par exemple, qui permettra de lancer le serveur web.

Le serveur sera lancé sur le port 8080, et la racine du serveur sera le dossier "www".

var server = require('kocal-server');
 
server.launch(); 

Le serveur sela lancé sur le port 1234, et la racine du serveur sera le dossier "public_html".

var server = require('kocal-server');
 
server.launch({
    port : 1234,
    wwwDir : 'public_html'
});

Pour lancer le serveur sur le port 80 (ou un port inférieur à 1024), il vous faut les droits root.

var server = require('kocal-server');
 
server.launch({
    port : 80
});

Et enfin :

$ node server.js

Depuis la version 0.0.6, il est possible de gérer le routing d'URL qui les mappe à des fonctions, ce qui permet d'ajouter du dynamisme au serveur (requête vers une base de données par exemple).

server.get(String path, function(reqresObject GET) { /* ... */});
server.post(String path, function(reqresObject GETObject POST) { /* ... */});
// Lorsqu'on a une requête de type GET avec l'URL "/path" 
 
server.get('/path', function(reqresGET) {
    // ...  
    
    res.end(); // Obligatoire 
});
 
server.get('/path/to/image.jpg', function(reqresGET) {
    // ...  
 
    res.end(); // Obligatoire 
});
 
// S'il y a des données GET qui sont envoyées, il faut les spécifier dans l'URL 
 
server.get('/search?q=([^&]+)', function(reqresGET) {
    // On peut accéder à la valeur du paramètre "q" avec GET['q']; 
 
    res.end();
});
// Lorsqu'on a une requête de type POST  
 
server.post('/path', function(reqresGETPOST) {
    // Comme avec GET, on peut accéder aux données d'une requête POST,  
    // grâce à la variable POST. 
 
    for(name in POST) {
        res.write(name + ' : ' + POST[name]); // débug de POST 
    }
 
    res.end();
});

Il est possible d'utiliser les données GET et POST en même temps

Exemple d'une API pour enregistrer des données de test dans une base de données (exemple de merde oui je sais).

server.post('/api?user=([^&]+)&auth_key=([^&]+)/registerIntoDB', function(reqresGETPOST) {
    
    if(GET['user'] == 'root' && auth_key == '123456') { // c'est très la sécurité 
        if(POST['pseudo'] && POST['number']) {
            // On peut exploiter POST['pseudo'] et POST['number'] (dans une BDD par exemple).  
 
            if(/* enregistrement OK */) {
                res.write('ok');
            }
        }
    }
 
    res.end();
});