我有一个必须以CSV格式返回数据的自定义服务。
我无法使用标准的Express路线,因为我需要此端点上的Feathers钩子。
我找不到一个Feathers服务返回非HTML,非JSON数据的示例,并且找不到指定响应内容类型的方法。
在从服务方法返回之前使用res.set('Content-Type', 'text/csv')
不起作用;最终的Content-Type
标头已重置为application/json
,即使该方法的返回值是常规字符串。
如何在Feathers的自定义服务方法中正确设置任意响应内容类型?
答案 0 :(得分:1)
您可以自定义响应格式:
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));
可以找到完整的文档here。
使用own service specific middleware发送回复也应该有效。