2013-06-13 2 views
0

노드 애플리케이션 0.10.7을 2.5.0으로 복원했습니다. 내 애플리케이션은 파일 업로드가 간단한 사용자이고, 더 나은 제어를 위해 writestream을 통해 파일을 업로드 할 수 있기를 원합니다. 그래서 아이디어의 순서대로, 나는 API를받는 데이터가 JSON에있을 때 jsonbody 파서를 사용자의 crud 연산에 사용할 수 있기를 원하지만 JSON을 파싱 할 때 파일을받을 때 몸을 파싱하고 싶지 않다. 파서는 메모리에있는 모든 내용을 읽으며 Im은 "큰"크기의 파일을 읽습니다.특정 경로에 jsonbodyparser를 복원

아, 또한 클라이언트 요청에서 바이너리 데이터를 가져 오는 중입니다.

내가보기에는 서버 설정에서 bodyparser를 제거하고 수동으로 모든 요청을 구문 분석하여 CRUD 작업을 위해 본문을 구문 분석하는 방법을 묻는 질문을 받게됩니다.

또는 다른 방법은 특정 경로 또는 특정 컨트롤러에서 jsonBodyParser를 지정하는 방법을 찾는 것입니다. 그러나 어떻게 알지는 못합니다.

또 다른 옵션이 있습니까? 아니면이 두 옵션이 더 좋을까요? 그리고 첫 번째 옵션 인 경우 req.body를 구문 분석하여 쉽지 않은 작업을 쉽게 수행 할 수 있도록 할 수 있습니까?

내 업 로더 기능 https://gist.github.com/maumercado/6f1f96d23bce888934db

는 당신의 도움에 대해 감사합니다!

답변

3

그래서이 질문은 경로가 어떻게 복구되는지 이해하지 못했음을 보여줍니다.

route가 컨트롤러의 배열이나 매개 변수로 단일 함수를 사용하기 때문에 restify.bodyParser()를 라우트에서 컨트롤러 앞에 실행하는 메서드로 설정했습니다. 따라서이 같은

:

// User Routes 

server.get('/users', usersController.index); 
server.post('/users', restify.bodyParser(), usersController.create); 
server.get('/users', usersController.checkUsername); 

// Upload Route 

server.post('/upload', fileController.upload); 

그와 내가 대신 모든 서버에서 실행이 필요한 곳, bodyparser를 실행할 임 수, 설정합니다.

관련 문제