2016-10-21 6 views
1

私はCSV形式のデータを返さなければならないカスタムサービスを持っています。フェザーの任意の応答コンテンツタイプ

このエンドポイントでFeathersのフックが必要なため、私は標準のExpressルートを使用できません。

HTML以外の非JSONデータを返すFeathersサービスの例が見つかりませんでしたが、応答コンテンツタイプを指定する方法が見つかっていませんでした。

サービス方法から戻る前にres.set('Content-Type', 'text/csv')を使用すると機能しませんでした。メソッドの戻り値が通常の文字列であっても、最後のContent-Typeヘッダーはapplication/jsonにリセットされました。

Feathersのカスタムサービスメソッドで任意の応答コンテンツタイプを適切に設定するにはどうすればよいですか?完全なドキュメントが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

私はドキュメントでそれを見てきましたが、希望の結果を得るためにサービスミドルウェアと協力する方法は痛いほどわかりません。私はrestFatterオプションを理解していないからといって、ここではサービス固有のミドルウェアを使うつもりだと思う。また、コンテンツ・ネゴシエーションのように見えますが、実際にはコンテンツ・タイプを強制したいときです。それはダウンロードエンドポイントです。 –

+0

サービス固有のミドルウェアは、いつものようにトリックをしました;) –

関連する問題