node
中有一個很是強大的模塊,就是用於建立網絡應用的HTTP
模塊。例如咱們能夠建立一個服務監聽某個給定的端口,這樣咱們就能夠爲客戶建立一個後端服務。就像React
或者Angular
建立的應用,或者在手機上使用的移動端應用。node
回到node
的文檔中,能夠找到HTTP
模塊的信息,在這裏能夠看到不少類,好比http.Agent
、http.ClientRequest
等等。每一個類都有不少熟悉,方法和事件。 數據庫
server
也是一個
EventEmitter
類,天然也是具有全部
EventEmitter
的功能。
node
的官方文檔中的
HTTP
模塊能夠看到
http.Server
,點進去就知道這個類繼承自
net.Server
類,這是另外一個定義在
net
模塊中的類,點進去看文檔說明知道
net.Server
是一個
EventEmitter
。這也是說在
node
中不少功能都基於
EventEmitter
回到編輯器,繼續寫下去。 json
server
就會發起事件。天然咱們就可使用
on
方法來處理事件,在監聽以前咱們先要建立一個監聽器,或者說是句柄。
connection
,能夠在文檔中找到,第二個是一個回調函數,或者說是真正的監聽者。這個監聽者是一個
socket
類的實例。在控制檯運行能夠看到它在監聽3000端口了,須要中止監聽直接
Ctrl+C
鍵強制退出便可。
http://localhost:3000/
server
對象能夠發起不一樣的事件待咱們處理。
如今咱們換一種方式,直接給CreateServer
方法一個回調函數,這個函數須要兩個參數。分別是請求和響應,這樣就能夠直接操做真實的request
和response
對象。咱們能夠檢測若是請求的url
是/
,咱們就返回點東西給客戶端。 後端
Hello World
。
固然咱們若是想建立一個網絡應用的後端服務,須要處理不少的路由規則。咱們繼續添加一個if
代碼塊。假設咱們想從數據庫返回課程的列表,當請求路徑匹配的話,就返回一個json
對象。 數組
json
數據格式的數據。
//require引入child_process,自動打開瀏覽器
const childProcess = require('child_process');
//監聽後自動打開瀏覽器
childProcess.exec('start http://127.0.0.1:3000/');
複製代碼
這就是一個最基本的node
建立的服務器,現實中咱們不會使用http
模塊直接建立後端服務。緣由是隨着項目需求愈來愈多時,所須要寫的路由規則也是隨着增加。一直都是在回調函數中線性的增長它們的內容,取而代之的是使用一個叫Express
的框架。它能夠給應用一個清晰的結構,來處理不一樣的路由請求,使用Express
來替代node
原有的HTTP
模塊的功能。瀏覽器