統(tǒng)一處理文件讀取路徑
- 我們知道
apache服務(wù)器中有個(gè)www文件夾,里面存放的文件可以通過apache服務(wù)器進(jìn)行訪問,我們可以試著實(shí)現(xiàn)一下,當(dāng)然上一節(jié)用if..else...也可以做,但是如果文件很多的話,總不能寫一大堆的判斷吧,那么這一節(jié)就來找規(guī)律,避免大量的if...else...判斷。
例:
- 首先,在別的地方定義一個(gè)
www文件夾

image.png
- 然后,在新建一個(gè)
likeApache.js文件
**likeApache.js**
const http = require('http');
const fs = require('fs');
let server = http.createServer();
let wwwDir = 'E:/day day up/14Nodejs教程精講(7天+5天贈送)/www';
server.on('request', function(request, response) {
let url = request.url;
if(url == '/') {
fs.readFile(wwwDir + '/index.html', function(error, data) {
if(error) {
return response.end('404 not found');
}
response.end(data);
})
}else if (url == '/timg.jpg') {
fs.readFile(wwwDir + '/timg.jpg', function(error, data) {
if(error) {
return response.end('404 not found');
}
response.end(data);
})
}
})
server.listen(8080, function() {
console.log('Server is running...')
})
- 注意:這里面已經(jīng)做了改變,將絕對路徑的公共部分保存在了
wwwDir的變量當(dāng)中。
- 然后,在命令行中運(yùn)行
likeApache.js文件
PS E:\good good study\NodeJs> node .\likeApache.js
Server is running...
-
- 接著,在瀏覽器中輸入
localhost:8080可以看到

- 在接著,在瀏覽器中輸入
localhost:8080/timg.jpg可以看到

image.png
- 接下來,我們就開始找規(guī)律了
wwwDir + '/index.html'wwwDir + '/timg.html'- 我們知道,
request.url返回的就是localhost:8080后面的路徑,這么一看這個(gè)'/index.html'和'/timg.html'不就是request.url返回的url路徑嗎,所以我們可以將上面的路徑改寫一下wwwDir + url這樣就完事了
所以,likeApache.js文件可以接著改寫一下
const http = require('http');
const fs = require('fs');
let server = http.createServer();
let wwwDir = 'E:/day day up/14Nodejs教程精講(7天+5天贈送)/www';
server.on('request', function(request, response) {
let url = request.url;
let filePath = '/index.html'
if(url != '/') {
filePath = url;
}
fs.readFile(wwwDir + filePath, function(error, data) {
if(error) {
return response.end('404 not found');
}
response.end(data);
})
})
server.listen(8080, function() {
console.log('Server is running...')
})
- 這里只要判斷
url不等于/就好了,這樣能少寫個(gè)判斷,(●'?'●)