1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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 |
- {'res.writeHead(200, {''Content-Type'': ''text/html''});'}.
- res end: (self process: req)].
- (http createServer: block)
- listen: #(1337 '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(''os''), http = require(''http'');'}
- !
- main
- self new start
- ! !
|