HTML and CSS Reference
In-Depth Information
as will Node's event module. Listing 14.3 shows the server, which should live in
lib/chapp/server.js
.
Listing 14.3
A Node.js HTTP server
var http = require("http");
var url = require("url");
var crController = require("chapp/chat_room_controller");
module.exports = http.createServer(function (req, res) {
if (url.parse(req.url).pathname == "/comet") {
var controller = crController.create(req, res);
controller[req.method.toLowerCase()]();
}
});
The server requires the first module that we are going to write—the
chat-
RoomController
, which deals with the request/response logic. The server cur-
rently only responds to requests to the
/comet
URL.
14.1.2.2 The Startup Script
To start the server we need a script similar to the
run
_
tests
script, which sets up
the load path, requires the server file, and starts the server. Listing 14.4 shows the
script, which should be saved in
./run
_
server
, and should be made executable
with
chmod +x run
_
server
.
Listing 14.4
Startup script
#!/usr/local/bin/node
require.paths.push(
__
dirname);
require.paths.push(
__
dirname + "/deps");
require.paths.push(
__
dirname + "/lib");
||
require("chapp/server").listen(process.argv[2]
8000);
The
listen
call starts the server.
process.argv
contains all the command
line arguments, i.e., the interpreter, the file being run, and any additional arguments
given when running the script. The script is run with
./run
_
server 8080
.
Leaving out the port number starts the server on the default port 8000.