2016-10-21 2 views
1

У меня есть настраиваемая служба, которая должна возвращать данные в формате CSV.Типы произвольного ответа в Feathers

Я не могу использовать стандартный экспресс-маршрут, потому что мне нужны крючки Перьев на этой конечной точке.

Я не мог найти пример службы Feathers, возвращающей данные, отличные от HTML, не относящиеся к JSON, и не нашел способа указать тип содержимого ответа.

Использование res.set('Content-Type', 'text/csv') перед возвратом из метода обслуживания не сработало; окончательный заголовок Content-Type был сброшен до application/json, хотя возвращаемое значение метода было обычной строкой.

Как правильно установить произвольные типы содержимого ответа в пользовательских методах обслуживания Perather?

ответ

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 для отправки ответа также должно работать.

+0

Я видел это в документах, но мне больно неясно, как это взаимодействует с сервисными посредниками для достижения желаемого результата. Я думаю, что я поеду с промежуточным программным обеспечением, специфичным для службы, только потому, что я не понимаю параметр restFormatter. Также это похоже на согласование контента, когда на самом деле я хочу заставить тип контента; это конечная точка загрузки. –

+0

Специальное промежуточное программное обеспечение сделало трюк, спасибо, как обычно;) –