2013-08-20 4 views
3

Express에서 파일을 제공하는 방법에 대해서는 약간 혼란 스럽습니다.express.static()에서 파일을 가져 오거나 POST하는 방법

현재 클라이언트 측 리소스를 보유하기 위해 /public 디렉터리가 있습니다. 나는 익스프레스 그것은이 디렉토리에 아무것도 공개했다 나의 느낌이었다

app.use(express.static(__dirname + '/public')); 

를 사용하여 구성하고, (그렇지 않으면 Express에서 수동으로 라우팅하지 않는 한) 그 HTTP 메소드 URL을 액세스의 루트 디렉토리로 /public을 기본값.

이 디렉토리의 모든 파일에 GET을 사용하는 데 문제가 없습니다 (클라이언트 측 스크립트, 이미지 등) 그러나이 디렉토리 내에 POST 파일을 넣으려고하면 404가 표시됩니다. 모든 POST 요청을 수동으로 라우트해야합니까? 당신이

답변

5

Express, 정적 미들웨어는 GET 요청 만 허용합니다. here을 참조하십시오.

공개 된 파일을 POST로 덮어 쓰려고한다면 별도의 경로를 만들어야합니다.

+0

링크를 이용해 주셔서 감사합니다. 정적'POST '를 가능하게하는 익스프레스 설정이 있는지 몰랐습니다. – Colin

2

연결/익스프레스 'static middlewaresupports GET and HEAD method을 돕기 위해

app.post(route, callback)

감사 :

if ('GET' != req.method && 'HEAD' != req.method) return next(); 

정적 파일과 일치하는 경로에 POST 수 있도록하려면 원하는 경우 처리기를 직접 정의해야합니다.

+0

당신은 그것에 나를 이길 하하, 그것은 잘 작동 정적

app.use(staticPath, function(req, res, next){ if ('POST' != req.method){ next() }else{ req.method = 'GET' next() } }) app.use(staticPath, express.static('./static')) 

게시 할 수있는 쉬운 방법을 찾아! ;) – fakewaffle

0

나는

관련 문제