2012-04-12 12 views
0

/ok/ä.txt/very///bad/%D0%B9/../../../../../request/../ok/%C3%A4.txtからnode.jsに取得します。私は次の方法を発見しました:nodejsからのビルドパス。request.urlパス名

var url = require('url'), path = require('path'); 
require('http').createServer(function (request, response) { 

    var file = null; 
    try { 
     file = path.normalize(decodeURI(url.parse(request.url).pathname)); 
    } catch (e) { 
    } 

    console.log(file); 
    response.end(); 
}).listen(3002, '127.0.0.1'); 

try/catchブロックなしでいくつかの方法がありますか?

私はパラメータの型 stringでない場合 path.normalizedecodeURIエラーをスローしたことがないと url.parseのみエラーがスローされますので、あなただけの、 try..catchブロックを取り除くことができると思い

答えて

0

... 
if (typeof url !== 'string') { 
    throw new TypeError("Parameter 'url' must be a string, not " + typeof url); 
} 
... 

request.url以来です常にタイプstringのいずれかが発生しません。

関連する問題