2016-10-21 4 views
1

데이터를 CSV 형식으로 반환해야하는 맞춤 서비스가 있습니다.깃털의 임의 응답 콘텐츠 유형

표준 익스프레스 라우트를 사용할 수 없습니다.이 엔드 포인트에서 깃털 '후크가 필요하기 때문에 사용할 수 없습니다.

비 HTML, 비 JSON 데이터를 반환하는 Feathers 서비스의 예를 찾을 수 없으며 응답 콘텐츠 유형을 지정할 방법이 없습니다.

서비스 메서드에서 복귀하기 전에 res.set('Content-Type', 'text/csv')을 사용하면 작동하지 않습니다. 메서드의 반환 값이 일반 문자열 이었지만 최종 Content-Type 헤더는 application/json으로 다시 설정되었습니다.

깃털의 맞춤 서비스 메서드에서 임의의 응답 콘텐츠 형식을 올바르게 설정하려면 어떻게해야합니까? 전체 문서는 here를 찾을 수 있습니다

const feathers = require('feathers'); 
const rest = require('feathers-rest'); 

const app = feathers(); 

function restFormatter(req, res) { 
    res.format({ 
    'text/plain': function() { 
     res.end(`The Message is: "${res.data.text}"`); 
    } 
    }); 
} 

app.configure(rest(restFormatter)); 

:

답변

1

는이 같은 응답 형식을 사용자 정의 할 수 있습니다.

own service specific middleware을 사용하면 응답을 보내야합니다.

+0

필자는 문서에서이 내용을 보았지만, 원하는 결과를 얻기 위해 서비스 미들웨어와 협력하는 방법이 나에게 고통스럽게 불분명합니다. restFormatter 옵션을 이해할 수 없기 때문에 여기에 서비스 별 미들웨어를 사용할 것입니다. 또한 사실 컨텐트 유형을 강제하려고 할 때 컨텐트 협상과 같이 보입니다. 다운로드 엔드 포인트입니다. –

+0

서비스 별 미들웨어가 트릭을 보았습니다. 평소와 같이 감사합니다.) –