pühapäev, 1. august 2010

node.ee

Paar päeva tagasi sain tööle tõenäoliselt esimese avaliku node.JS serveri Eestis - node.ee. Tegu pole ses suhtes küll 100% node.JS serveriga, kuna antud platvorm ei paista maailmale kätte otse, vaid läbi nginx proksi. See tähendab, et hetkel kõik aadressid kujul node.ee/node/* teenindatakse just node.JS poolt, muude eest aga hoolitseb juba nginx.

Sellega seoses olen juba paari asja katsetanud ja ühe huvitava projektina proovisin teha kliendipoolset andmebaasi liidest. See tähendab, et server näitab välja otsad andmebaasiga majandamiseks, kuid konkreetseid tegevusi teeb selle liidese abil juba kliendi pool ehk brauseris jooksev JavaScript. Tulemust saab näha siit. Kõik päringuandmed teisendatakse vahepeal lihtsalt objektidest JSON'i kujule ja vastupidi kuid edasi antakse kliendile/andmebaasile need juba originaalkujul.

See tähendab, et kui klient koostab mingisuguse päringu (objekti kujul, näiteks {eesnimi:"Peeter", perenimi:"Meeter"}), teisendatakse see JSON'iks, saadetakse serverile, server taastab JSON'ist uuesti objekti ja annab selle andmebaasile töötlemiseks. Täpselt sama, ainult et vastupidises järjekorras, toimub ka andmete saatmisega andmebaasist tagasi kliendile. Server otsib näitena toodud päringu alusel üles kõik kirjed, kus eesnimi on Peeter ja perekonnanimi Meeter ja tagastab need massiivina kliendile.

Juhul kui selline baas on kasutajapõhine ning erinevate kasutajate baasid on üksteisest eraldatud (näiteks serveri poolt lisatud prefiksid tabeli nimedes), peaks tulemus olema piisavalt stabiilne, et a) kliendil on väga suur vabadus käia andmetega ringi nagu soov on ning b) üks klient ei saa ligi teise kliendi andmetele. Suurepärane näiteks veebilehel olevatele widgetitele enda seadete salvestamiseks jms.

Huvitav teema indeed!

Kommentaare ei ole: