Node-RED:Рецепты/Как обработать запрос с помощью локального файла: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 1: Строка 1:
{{Node-RED/Панель перехода}}
{{Node-RED/Панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Как обработать запрос с помощью локального файла<ref>[https://cookbook.nodered.org/http/serve-a-local-file cookbook.nodered.org - Serve a local file]</ref>=
=Как обработать запрос с помощью локального файла<ref>[https://cookbook.nodered.org/http/serve-a-local-file cookbook.nodered.org - Serve a local file]</ref>=
Строка 20: Строка 17:
[[File:noderd_recipe_serve-a-local-file.png|center]]
[[File:noderd_recipe_serve-a-local-file.png|center]]


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
[{"id":"c7e341a0.381cc","type":"http in","z":"3045204d.cfbae","name":"","url":"/hello-file","method":"get","swaggerDoc":"","x":110,"y":720,"wires":[["2fb1c354.d04e3c"]]},{"id":"2fb1c354.d04e3c","type":"file in","z":"3045204d.cfbae","name":"","filename":"/tmp/node-red.png","format":"","x":290,"y":720,"wires":[["c9e28681.361d78"]]},{"id":"c9e28681.361d78","type":"change","z":"3045204d.cfbae","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"image/png","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":720,"wires":[["88974243.7768c"]]},{"id":"88974243.7768c","type":"http response","z":"3045204d.cfbae","name":"","x":610,"y":720,"wires":[]}]
[{"id":"c7e341a0.381cc","type":"http in","z":"3045204d.cfbae","name":"","url":"/hello-file","method":"get","swaggerDoc":"","x":110,"y":720,"wires":[["2fb1c354.d04e3c"]]},{"id":"2fb1c354.d04e3c","type":"file in","z":"3045204d.cfbae","name":"","filename":"/tmp/node-red.png","format":"","x":290,"y":720,"wires":[["c9e28681.361d78"]]},{"id":"c9e28681.361d78","type":"change","z":"3045204d.cfbae","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"image/png","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":720,"wires":[["88974243.7768c"]]},{"id":"88974243.7768c","type":"http response","z":"3045204d.cfbae","name":"","x":610,"y":720,"wires":[]}]
</syntaxhighlight>
</syntaxhighlight>




<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
[~]$ curl  http://localhost:1880/hello-file > file.png
[~]$ curl  http://localhost:1880/hello-file > file.png
</syntaxhighlight>
</syntaxhighlight>
Строка 36: Строка 33:


=См.также=
=См.также=
 
{{ads}}
=Внешние ссылки=
=Внешние ссылки=


Строка 42: Строка 39:
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты]]
[[Категория:Рецепты]]
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 18:25, 14 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Как обработать запрос с помощью локального файла[1]

Проблема

Вам нужно создать конечную HTTP-точку, отвечающую на GET-запросы при помощи контента из локального файла (вроде PNG-изображения).

Решение

При помощи ноды «File in» загрузите нужный контент и задайте в заголовке «Content-Type» значение, соответствующее типу файла, который нужно будет вернуть при ответе.

Пример

[{"id":"c7e341a0.381cc","type":"http in","z":"3045204d.cfbae","name":"","url":"/hello-file","method":"get","swaggerDoc":"","x":110,"y":720,"wires":[["2fb1c354.d04e3c"]]},{"id":"2fb1c354.d04e3c","type":"file in","z":"3045204d.cfbae","name":"","filename":"/tmp/node-red.png","format":"","x":290,"y":720,"wires":[["c9e28681.361d78"]]},{"id":"c9e28681.361d78","type":"change","z":"3045204d.cfbae","name":"Set Headers","rules":[{"t":"set","p":"headers","pt":"msg","to":"{}","tot":"json"},{"t":"set","p":"headers.content-type","pt":"msg","to":"image/png","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":720,"wires":[["88974243.7768c"]]},{"id":"88974243.7768c","type":"http response","z":"3045204d.cfbae","name":"","x":610,"y":720,"wires":[]}]


[~]$ curl  http://localhost:1880/hello-file > file.png

Разбор

При загрузке нетекстового файла (вроде изображения) нода «File in» должна быть настроена на возврат объекта «Buffer».

Чтобы получатель знал, как ему обрабатывать этот файл, в заголовке «Content-Type» должен быть задан правильный MIME-тип. В примере выше (где возвращается файл «.png») в заголовке «Content-Type» задано «image/png».

См.также

Внешние ссылки