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