| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 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 |        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! !
 |