Feathers中的任意响应内容类型

时间:2016-10-21 06:32:36

标签: content-type feathersjs

我有一个必须以CSV格式返回数据的自定义服务。

我无法使用标准的Express路线,因为我需要此端点上的Feathers钩子。

我找不到一个Feathers服务返回非HTML,非JSON数据的示例,并且找不到指定响应内容类型的方法。

在从服务方法返回之前使用res.set('Content-Type', 'text/csv')不起作用;最终的Content-Type标头已重置为application/json,即使该方法的返回值是常规字符串。

如何在Feathers的自定义服务方法中正确设置任意响应内容类型?

1 个答案:

答案 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发送回复也应该有效。