Bonjour,

Pour me familiariser avec Javascript (et en particulier NodeJS) je me suis lanc� dans un projet concret.

Tout fonctionne correctement, mais je pense "mal" utiliser le langage et qu'il y a certainement mieux a faire (pas toujours simple de s'adapter � un nouveau langage)

Dans ce projet j'ai besoin de "construire" les URL de diff�rentes cameras IP.
L'ensemble des Information des cam�ras se trouve dans un fichier JSON

Aujourd'hui je vous soumet donc un petit bout de code � vos critiques/conseils/Optimisation/... (en particulier l'obligation de r�p�tition des "tags" qui n'est pas tr�s propre (sic))


Extrait de la "routine" de cr�ation des URLs:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const cameras_cfg = require("./cfg/cameras.json");
 
makeCameraUrl = function (camera, type, flux, user) {
    var url = camera.url;
    var Obj = {
        "@@login@@": user.login,
        "@@passwd@@": user.passwd,
        "@@ip@@": camera.ip,
        "@@stream@@": camera.flux[type].stream,
        "@@port@@": camera.flux[type].port,
        "@@flux@@": camera.flux[type][flux]
    };
    return url.replace(/@@login@@|@@passwd@@|@@ip@@|@@stream@@|@@port@@|@@flux@@/g, function (matched) { 
             return Obj[matched]; 
    });
}
 
let cam_id = "102";
let url = makeCameraUrl(cameras_cfg.devices[cam_id], "rtsp", "hd", cameras_cfg.users.view);
console.log("Url:", url);

Extrait du JSON des cameras (cameras.json):

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
{
    "users": {
        "admin": {
            "login": "admin",
            "passwd": "xxxxx"
        },
        "view": {
            "login": "user",
            "passwd": "yyyyyy"
        }
    },
    "devices": {
        "102": {
            "id": 102,
            "name": "Cam 102 PTZ",
            "ip": "192.168.0.102",
            "url": "@@stream@@://@@login@@:@@passwd@@@@@ip@@:@@port@@/@@flux@@",
            "flux": {
                "rtsp": {
                    "stream": "rtsp",
                    "port": 554,
                    "hd": "1",
                    "sd": "2"
                }
            }
        },
 
        ../..
 
        "106": {
            "id": 106,
            "name": "Cam 106",
            "ip": "192.168.0.106",
            "url": "@@stream@@://@@ip@@:@@port@@/user=@@login@@&password=@@passwd@@&@@flux@@",
            "flux": {
                "rtsp": {
                    "stream": "rtsp",
                    "port": 554,
                    "hd": "channel=1&stream=0.sdp",
                    "sd": "channel=2&stream=0.sdp"
                }
            }
        }
    }
}

Merci d'avance de m'aider � progresser dans les bonnes techniques Javascript