123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- Object subclass: #TrivialServer
- instanceVariableNames: 'counter'
- category: 'TrivialServer'!
- !TrivialServer methodsFor: 'initializing'!
- initialize
- counter := 0
- ! !
- !TrivialServer methodsFor: 'processing'!
- process: aRequest
- | hostname httpVersion stream |
- counter := counter + 1.
- "Calling a method in a js module"
- hostname := os hostname.
- "Accessing a property of js HTTP request object"
- httpVersion := aRequest httpVersion.
- stream := String new writeStream.
- stream
- nextPutAll: '<html><p>Request HTTP version: ', httpVersion, '</p>';
- nextPutAll: '<p>OS hostname: ', hostname, '</p>';
- nextPutAll: '<p>Number of requests: ', counter asString, '</p></html>'.
- ^stream contents
- !
- start
- | block obj |
- block := [:req :res || headers |
- headers := Dictionary with: 'content-type' -> 'text/html'.
- res writeHead: (Array with: 200 with: headers).
- res end: (self process: req)].
- (http createServer: block)
- listen: 1337 host: '127.0.0.1'.
- console log: 'TrivialServer running at http://127.0.0.1:1337/'
- ! !
- !TrivialServer class methodsFor: 'initialization'!
- initialize
- "We require these Node modules."
- os := require value: 'os'.
- http := require value: 'http'.
- !
- main
- self new start
- ! !
|