1
URL을 가져 와서 구문 분석하여 클라이언트가 서버의 루트 폴더 아래에있는 리소스를 요구하지 않는지 확인하는 작은 웹 서버 기능은 다음과 같습니다.Regex는 Linux에서 작동하지만 Windows에서는 작동하지 않습니다. - node.JS
function getUrl(url, resourceMap, rootFolder) {
var path = require('path');
if (typeof resourceMap[url] !== 'undefined') {
return (path.join(rootFolder,resourceMap[url]));
}
var absoluteURL = path.join(rootFolder,url);
console.log("ROOT: "+rootFolder);
console.log("NEW: "+absoluteURL);
var regex = new RegExp('^' + rootFolder + '.*')
if (absoluteURL.match(regex) === null) {
console.log("FALSE");
return (false);
}
return (absoluteURL);
}
당신은 내가이 리눅스에서 잘 작동 '^' + rootFolder + '.*'
정규식을 사용하여 rootFolder
와 확인하십시오 absoluteURL
시작을하지만, 윈도우에 항상 false를 돌려 볼 수 있듯이.
ROOT: C:\Users\user\workspace
NEW: C:\Users\user\workspace\images\IMG_7102.JPG
그래서 내가 URL의 구문 분석 괜찮 것을 알고있다.
왜 에이미 아이디어? 감사합니다.
하지만 rootFolder는 'C : \\ 사용자 \\ 작업 공간을'로 지정되어 지금까지 내가 – Yotam
@Yotam을 이해 문제가해서는 안 : I 그것이 문자 소스라고 가정합니다. 이러한 이스케이프는 문자열 리터럴을위한 것입니다. 문자열의 실제 값은 단일'\'을 갖습니다. – SLaks