3

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

我不能使用标准的 Express 路线,因为我需要在这个端点上使用 Feathers 的钩子。

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

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

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

4

1 回答 1

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));

完整的文档可以在这里找到。

使用您自己的特定于服务的中间件来发送响应也应该有效。

于 2016-10-21T15:09:17.740 回答