我刚开始学习Node.js和Express,我正在尝试构建一个静态文件服务器。我的问题是:每次用户插入错误的路径时,如何防止节点崩溃? 这是我的代码:
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)
}
谢谢!
答案 0 :(得分: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);
}
}
希望它有所帮助。