Feathers 中的任意响应内容类型
Arbitrary response content types in Feathers
我有一个自定义服务,必须 return CSV 格式的数据。
我不能使用标准的 Express 路由,因为我需要在这个端点上使用 Feathers 的挂钩。
我找不到 Feathers 服务的示例 returning non-HTML、non-JSON 数据,并且找不到指定响应内容类型的方法。
在从服务方法 returning 之前使用 res.set('Content-Type', 'text/csv')
无效;最终的 Content-Type
header 被重置为 application/json
,即使该方法的 return 值是一个常规字符串。
如何在 Feathers 的自定义服务方法中正确设置任意响应内容类型?
您可以像这样自定义响应格式:
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 发送回复应该也可以。
我有一个自定义服务,必须 return CSV 格式的数据。
我不能使用标准的 Express 路由,因为我需要在这个端点上使用 Feathers 的挂钩。
我找不到 Feathers 服务的示例 returning non-HTML、non-JSON 数据,并且找不到指定响应内容类型的方法。
在从服务方法 returning 之前使用 res.set('Content-Type', 'text/csv')
无效;最终的 Content-Type
header 被重置为 application/json
,即使该方法的 return 值是一个常规字符串。
如何在 Feathers 的自定义服务方法中正确设置任意响应内容类型?
您可以像这样自定义响应格式:
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 发送回复应该也可以。