2017-02-09 6 views
0

POST 동사와 함께 API 끝점을 만들고 파일을 가져옵니다. 나는 다음과 같은 내 엔드 포인트를 선언swaggerize-hapi 및 node.js 파일을 업로드 하시겠습니까?

consumes: 
    - application/json 
    - multipart/form-data 
    # format of the responses to the client (Accepts) 
    produces: 
    - application/json 
... 
    /importfile: 
     x-swagger-router-controller: import_file 
     post: 
      description: Sends the uploaded file to deliveries microservice to be processed. 
      consumes: 
      - multipart/form-data 
      produces: 
      - application/json 
      operationId: importcsv 
      parameters: 
      - name: file 
       in: formData 
       description: file to upload 
       required: true 
       type: file 

을 나는 질문의

const util = require('util'); 

function importcsv(req, res) { 
    console.log(req); 
    const message = util.format('hi there!'); 
    // this sends back a JSON response which is a single string 
    return res.json(message); 

} 

module.exports = { 
    importcsv, 
}; 

몇 import_file.js에 다음과 같은 한 :

  1. 라우터 컨트롤러에서 로그가 인쇄되지 않습니다 . 이 함수가 호출되지 않는다고 생각합니다. 뭐가 잘못 되었 니?
  2. 심지어 나는이 볼 성공 응답을 반환하지만 :

    HTTP/1.1

    콘텐츠 유형 : 텍스트/html로; 문자셋 = UTF-8 캐시 제어 : 경계

이유는 무엇입니까

를 찾을 수 없습니다 여러 부분이

노 캐시?

나는 Swagger를 처음 사용했습니다. 미리 감사드립니다.

+0

res.json가 제대로 보이지 않습니다를 어떻게와 연관된 핸들러를 config (설정) 경로를 선언입니까? –

답변

-1

이 게시물 here 게시물은 경계 문제가 수정되었다고 생각하게했습니다. 2016 년 12 월 29 일 마스터 브랜치에 고정되어 병합되었지만 2016 년 12 월 27 일 Swagger (see)의 최신 릴리스가 만들어졌습니다.

따라서 파일 업로드는 지금은 스 고거에서 작동하지 않습니다. (v1.5.12). 그것은 내 질문에 모두 대답합니다.

나는 작품 내 컨트롤러 테스트하기 위해 다음과 같은 단위 테스트 작성 :

const describe = require('ava-spec').describe; 
const request = require('supertest-as-promised'); 
const server = require('../../../../app'); 

describe('controllers',() => { 
    describe('import_file',() => { 
     describe('POST /importfile', (it) => { 
      it('should accept a file parameter', async (t) => { 
       const res = await request(server) 
        .post('/importfile') 
        .attach('file', 'test/data/A.csv') 
        .expect(200); 
       t.is(res.body, 'file uploaded'); 
      }); 
     }); 
    }); 
});