aboutsummaryrefslogtreecommitdiff
path: root/docs/net.md
blob: 11ae80fb8e0cac5905e0f00c3eb5e27546b02690 (plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# net

## listen (PARTIALLY IMPLEMENTED)

'takes a function with 1 argument and a integer for a port

the function will be ran on initilization, the argument has info on the server and functions to set it up

```lua
llib.net.listen(function(server)
    ...
end, 80)
```

### server:lock server:unlock **

continues on the current thread, but pauses all other threads at that point

```lua
...
server:lock()
--do something with a global
server:unlock()
...
```

### server:close **

closes server

### server:use

'takes a function with 3 paramaters

first and second are res and req as described in server:GET, the third is a function to move to the next point 

```lua
server:use(function(res, req, next) 
   if(req['Version'] == "HTTP/1.1") then 
    next()
   end
end)

server:GET("/", function(res, req)
    --version will always be 1.1, as per the middleware
end)
```

### server:GET

'takes a string (the path) and a function to be ran in the background on request

the function has 2 arguments, the first (res) contains functions and info about resolving the request,
the second (req) contains info on the request

```lua
...
server:GET("/", function(res, req) do
    ...
end)
...
```

#### res:send

'takes a string 

sends the string to the client

```lua
...
res:send("<h1>hello world</h1>")
...
```

#### res:set **

'takes 2 strings, key and value

set the key to value in the response header, certain keys will affect other values or have other side effects on res:send, listed below

|key|side effect|
|--|--|
|Code|Changes response note, ie: (200: OK)|


```lua
...
res:set("Content-Type", "text/html") -- Content-Type: text/html
...
```

#### res:close **

closes connection

### server:static_serve **

'takes two strings, first is server serve path, second is local path, being a file or directory

```lua
...
server:static_serve("/public", "./html/")
...
```