2016-11-04 33 views
0

我剛開始學習Node.js和Express,並且我正在嘗試構建靜態文件服務器。我的問題是:每次用戶插入錯誤的路徑時,如何防止節點崩潰? 這是我的代碼:Node.js在錯誤的文件路徑上崩潰

var express=require('express') 
var fs=require('fs') 
var app=express() 
var server=app.listen(3000, listening) 
console.log('Server Started on Port 3000') 

function listening(){ 
    console.log('Listening...') 
} 

app.use(express.static('website')) 

app.get('/search/:page', goTo) 


function goTo(req, res){ 
    var data=req.params 
    fs.createReadStream('./website/'+data.page+'.html').pipe(res) 
} 

謝謝!

回答

4

隨着try-catch您的應用程序將嘗試打開指定的路徑。如果失敗,您的應用將發送錯誤而不是崩潰。

試試這個:

function goTo(req, res) { 
    var data = req.params; 
    try{ 
     fs.createReadStream('./website/'+data.page+'.html').pipe(res); 
    } catch(err) { 
     res.send(err); 
    } 
} 

希望它能幫助。

+1

你應該解釋你做了什麼,因爲他只是剛剛起步。 – Archer

+1

@Archer你是對的,只是編輯。 – alex030293