1
0
Bläddra i källkod

Trying to rewrite trivialserver using Smalltalk syntax, problems.

Göran Krampe 13 år sedan
förälder
incheckning
306437336c

+ 2 - 2
nodejs/trivialserver/Makefile

@@ -1,5 +1,5 @@
-Program.js: TrivialServer.st main.js
-	../jtalkc -N -M main.js TrivialServer.st Program
+Program.js: TrivialServer.st
+	../../bin/jtalkc -N -m TrivialServer TrivialServer.st Program
 
 run: Program.js
 	./trivial

+ 0 - 18
nodejs/trivialserver/README

@@ -1,18 +0,0 @@
-Trivial Node.js example in JTalk:
-
-TrivialServer.st - source code.
-trivial          - trivial bash script to run resulting program.
-main.js          - small "doit" to actually run code. Will be added by ntalkc.
-Makefile         - trivial makefile, read it.
-
-TrivialServer.js - produced when you run make.
-Program.js       - Contains JTalk + TrivialServer.js + main.js
-
-To play, do this:
-
-make run
-
-...or:
-
-make
-./trivial

+ 21 - 4
nodejs/trivialserver/TrivialServer.st

@@ -9,15 +9,14 @@ initialize
 
 !TrivialServer methodsFor: 'processing'!
 process: aRequest
-
         | hostname httpVersion stream |
 	counter := counter + 1.
 
         "Calling a method in a js module"
-	hostname := {'os.hostname()'}.
+	hostname := os hostname.
 
         "Accessing a property of js HTTP request object"
-        httpVersion := {'aRequest.httpVersion'}.
+        httpVersion := aRequest httpVersion.
 
         stream := String new writeStream.
 	stream
@@ -25,9 +24,27 @@ process: aRequest
 		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
-	{'os = require(''os'');'}
+        "We require these Node modules."
+
+	{'os = require(''os''), http = require(''http'');'}
+!
+
+main
+	self new start
 ! !

+ 0 - 9
nodejs/trivialserver/main.js

@@ -1,9 +0,0 @@
-var http = require('http');
-// Instantiate a JTalk object to process requests
-var server = smalltalk.TrivialServer._new();
-http.createServer(function (req, res) {
-  res.writeHead(200, {'Content-Type': 'text/html'});
-  // Let the JTalk object process it
-  res.end(server._process_(req));
-}).listen(1337, "127.0.0.1");
-console.log('TrivialServer running at http://127.0.0.1:1337/');

+ 0 - 8
nodejs/trivialserver2/Makefile

@@ -1,8 +0,0 @@
-Program.js: TrivialServer.st
-	../jtalkc -N -m TrivialServer TrivialServer.st Program
-
-run: Program.js
-	./trivial
-
-clean:
-	rm Program.js TrivialServer.js

+ 0 - 4
nodejs/trivialserver2/README

@@ -1,4 +0,0 @@
-Slight variation on ../trivialserver but this one tries to do more Node
-stuff from Smalltalk. Note that we can use a block as a function callback.
-It would be nice if we could improve more on JTalk's ability to call javascript
-code directly.

+ 0 - 49
nodejs/trivialserver2/TrivialServer.st

@@ -1,49 +0,0 @@
-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
-! !

+ 0 - 1
nodejs/trivialserver2/trivial

@@ -1 +0,0 @@
-node Program.js $@