我剛剛開始閱讀使用Node和Express的Web開發,並且遇到了本書中未回答的問題。他們給出了一個基本的佈局,允許服務器請求home
,和/404
。每個人都有自己的HTML文件,其中有一張圖片。服務器路徑的流
這裏是他們給的代碼:
var http = require('http');
var fs = require('fs');
function serveStaticFile(res, path, contentType, responseCode){
if(!responseCode) responseCode = 200;
fs.readFile(__dirname + path, function(err, data){
if(err){
res.writeHead(500, {'Content-Type':'text/plain'});
res.end('500 - Internal Error');
} else {
res.writeHead(responseCode, {'Content-Type':contentType});
res.end(data);
}
});
}
http.createServer(function(req, res){
//normalize url by removing querystring, optional
//trailing slash, and making it lowercase
var path = req.url.replace(/\/?(?:\?.*)?$/,'').toLowerCase();
switch(path){
case '':
console.log('1');
serveStaticFile(res, '/public/home.html', 'text/html');
break;
case '/about':
console.log('2');
serveStaticFile(res, '/public/about.html', 'text/html');
break;
case '/img/error.jpeg':
console.log('3');
serveStaticFile(res, '/public/img/error.jpeg', 'image/jpeg');
break;
case '/img/logo.jpeg':
console.log('4');
serveStaticFile(res, '/public/img/logo.jpeg', 'image/jpeg');
break;
default:
console.log('5');
serveStaticFile(res, '/public/404.html', 'text/html');
break;
}
}).listen(8080);
console.log('Server started on localhost:8080');
爲home
,about
,並404
每個HTML文件中都有自己的<img>
標籤,所以我想的圖像會在用戶請求一個URL自動呈現。我們如何在switch
中需要額外的案例來處理圖像?例如,如果我輸入http://localhost:8080/about
,它將記錄2
,然後4
。爲什麼about
的情況也稱爲'/img/logo.jpeg'
?
有趣,謝謝你的簡單回答! – MarksCode