咱們打開瀏覽器瀏覽網頁時,點擊上面不一樣的模塊,地址欄中的路由會發生相應的變化,從而,瀏覽器向服務器發起請求的內容也會發生改變,那麼服務端,是如何來作的呢?html
服務端也是,經過路由來作出不一樣的響應的,咱們已經知道,服務器對象的參數有request,和response兩個參數。request裏就攜帶了,瀏覽器請求所攜帶的值。node
request.url返回的是瀏覽器中路由的值json
咱們能夠根據這個值來判斷,服務器須要返回給瀏覽器什麼內容,api
下面來看一下server.js的代碼:瀏覽器
var http = require("http"); var fs = require("fs"); var startServer = function(){ var onRequest = function(request,response){ console.log("request received"+request.url); if(request.url==="/"||request.url==="/home"){ response.writeHead(200,{"Content-Type":"text/html"}); fs.createReadStream(__dirname+"/index.html","utf8").pipe(response); }else if(request.url==="/review"){ response.writeHead(200,{"Content-Type":"text/html"}); fs.createReadStream(__dirname+"/review.html","utf8").pipe(response); }else if(request.url==="/api"){ response.writeHead(200,{"Content-Type":"application/json"}); var jsonObj={name:"lili",job:"coder",age:18}; response.end(JSON.stringify(jsonObj)); }else{ response.writeHead(200,{"Content-Type":"text/html"}); fs.createReadStream(__dirname+"/404.html","utf8").pipe(response); } } var server = http.createServer(onRequest); //最後讓服務器監聽一個端口 server.listen(3000,"127.0.0.1");//還能夠加第二個參數 127.0.0.1表明的是本地 console.log("server started on localhost port 3000");//加一個服務器啓動起來的提示 } module.exports.startServer=startServer;
上面server.js中,根據不一樣的路由,讓服務器返回給瀏覽器不一樣的內容,當找不到內容時,返回一個404頁面服務器
把server.js引入到app.js中app
var server = require("./server"); server.startServer();
執行node appui
在瀏覽器中 localhost:3000url
後面跟上不一樣的路由,會顯示不一樣的頁面,當匹配不到路由時,會顯示404頁面!!!spa