那么接下來,讓我們分析一下這個HTTP服務器的構成。
第一行_請求(require)_Node.js自帶的?_http_?模塊,并且把它賦值給?_http_?變量。
接下來我們調用http模塊提供的函數:?_createServer_?。這個函數會返回一個對象,這個對象有一個叫做?_listen_?的方法,這個方法有一個數值參數,指定這個HTTP服務器監聽的端口號。
咱們暫時先不管?_http.createServer_?的括號里的那個函數定義。
我們本來可以用這樣的代碼來啟動服務器并偵聽8888端口:
~~~
var http = require("http");
var server = http.createServer();
server.listen(8888);
~~~
這段代碼只會啟動一個偵聽8888端口的服務器,它不做任何別的事情,甚至連請求都不會應答。
最有趣(而且,如果你之前習慣使用一個更加保守的語言,比如PHP,它還很奇怪)的部分是?_createSever()_?的第一個參數,一個函數定義。
實際上,這個函數定義是?_createServer()_?的第一個也是唯一一個參數。因為在JavaScript中,函數和其他變量一樣都是可以被傳遞的。