This repository has been archived by the owner on Nov 19, 2022. It is now read-only.
forked from lovre/klepet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
streznik.js
63 lines (54 loc) · 1.95 KB
/
streznik.js
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
var http = require('http');
var fs = require('fs');
var path = require('path');
var mime = require('mime');
var predpomnilnik = {};
function posredujNapako404(odgovor) {
odgovor.writeHead(404, {'Content-Type': 'text/plain'});
odgovor.write('Napaka 404: Vira ni mogoče najti.');
odgovor.end();
}
function posredujDatoteko(odgovor, datotekaPot, datotekaVsebina) {
odgovor.writeHead(200, {"content-type": mime.lookup(path.basename(datotekaPot))});
odgovor.end(datotekaVsebina);
}
function posredujStaticnoVsebino(odgovor, predpomnilnik, absolutnaPotDoDatoteke) {
if (predpomnilnik[absolutnaPotDoDatoteke]) {
posredujDatoteko(odgovor, absolutnaPotDoDatoteke, predpomnilnik[absolutnaPotDoDatoteke]);
} else {
fs.exists(absolutnaPotDoDatoteke, function(datotekaObstaja) {
if (datotekaObstaja) {
fs.readFile(absolutnaPotDoDatoteke, function(napaka, datotekaVsebina) {
if (napaka) {
posredujNapako404(odgovor);
} else {
predpomnilnik[absolutnaPotDoDatoteke] = datotekaVsebina;
posredujDatoteko(odgovor, absolutnaPotDoDatoteke, datotekaVsebina);
}
});
} else {
posredujNapako404(odgovor);
}
});
}
}
var streznik = http.createServer(function(zahteva, odgovor) {
var potDoDatoteke = false;
predpomnilnik = {}; //Remove - this is developer hack!
if (zahteva.url == '/') {
potDoDatoteke = 'public/index.html';
} else {
potDoDatoteke = 'public' + zahteva.url;
}
var absolutnaPotDoDatoteke = './' + potDoDatoteke;
posredujStaticnoVsebino(odgovor, predpomnilnik, absolutnaPotDoDatoteke);
});
// Za združljivost razvoja na lokalnem računalniku ali v Cloud9 okolju
if (!process.env.PORT) {
process.env.PORT = 8080;
}
streznik.listen(process.env.PORT, function() {
console.log("Strežnik posluša na portu " + process.env.PORT + ".");
});
var klepetalnicaStreznik = require('./lib/klepetalnica_streznik');
klepetalnicaStreznik.listen(streznik);