(關於NPM安裝模組的部份會找時間補充到前一天或是使用到時順便介紹)
今天我們要建立一個可以讓使用者存取檔案的網站伺服器程式。
今天用到的都是Node.js內建模組,共有四個
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
//建立一個伺服器
var server = http.createServer(function(req,res){
//收到網址要求並將其解析
var filename = url.parse(req.url).pathname;
//將解析後的要求轉為檔案路徑
var filepath = path.join(__dirname,filename);
//判斷路徑下的檔案是否存在
fs.exists(filepath,function(exists){
//不存在,回傳404頁面給客戶端跳出
if(!exists){
//前者404為HTTP狀態碼,後面則是內容類型,這邊是HTML文字,編碼用utf-8
res.writeHead(404,{'Content-Type': 'text/html; charset=utf-8'});
res.end('<h1 style="color:red">404 Not Found!</h1>\n');
return;
}
//存在,則將存取檔案內容呈現在瀏覽器上
fs.readFile(filepath,function(err,content){
res.writeHead(200,{'Content-Type':'text/html; charset=utf-8'});
//存取過程失敗則會執行此行
if (err){
res.end('<h1 style="color:red">存取失敗</h1>\n');
}
res.end(content);
})
})
});
//監聽port:12345
server.listen(12345);
//網址為本地端:127.0.0.1:12345
console.log('Server Running!');
實作這個程式後,體認了解到檔案通常一開始宣告的檔案內容類型及編碼,能夠讓瀏覽器更正確的去解讀這一份檔案,反之也可以裡用來做些不好的事情。
而關於讀取檔案這一塊,應該也能做到權限控管才是。
對於後端流程今天有一點感覺了!