10.統(tǒng)一處理文件路徑,加強(qiáng)HTTP服務(wù)器

統(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è)判斷,(●'?'●)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容