-
Notifications
You must be signed in to change notification settings - Fork 1
/
WebServer.js
60 lines (47 loc) · 1.72 KB
/
WebServer.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
const http = require("http");
const fs = require("fs");
const writeContent = (obj, type, content, code = 200) => {
obj.writeHead(code, { 'content-type': type });
obj.write(content)
}
const types = {
default: 'application/octet-stream',
'js': 'application/javascript',
'css': 'text/css',
'png': 'image/png'
}
const resources = (fs.readdirSync(__dirname + '/web/static'));
const serv = http.createServer(async (request, response) => {
//loading resources in the static folder
if (resources.includes(((request.url).split("/")[((request.url).split("/")).length - 1]))) {
let extension = (request.url).split('.')[1];
let fileContents = fs.readFileSync(__dirname + request.url);
writeContent(response, types[extension], fileContents);
response.end();
}
// main page
else if (request.url === '/') {
let htmlContent = fs.readFileSync(__dirname + "/web/index.html");
if (request.method === 'GET') {
// LOAD PAGE
writeContent(response, 'text/html', htmlContent);
response.end();
} else {
response.write(JSON.stringify(chat.history));
response.end();
}
}
else if (request.url === '/send') {
let user_message = '';
let chat_response = '';
await request.on('data', (input_data) => {
user_message = input_data.toString();
})
chat_response = await chat.receive_message(user_message);
response.write(chat_response);
response.end();
}
});
const chat = new (require("./app/chat"));
chat.url = "http://127.0.0.1:11434/api/chat";
serv.listen(8000); // 127.0.0.1:8000