forked from CITKParus/P8-ExchangeService
Установка кодировки в JSON-ответах
This commit is contained in:
parent
857db44faf
commit
284e1392e2
@ -17,7 +17,8 @@ const _ = require("lodash"); //Работа с коллекциями и объ
|
|||||||
const SJSON_CONTROL_ATTR_ARRAY = "___array___"; //Управляющий атрибут для указания параметров конвертации массива
|
const SJSON_CONTROL_ATTR_ARRAY = "___array___"; //Управляющий атрибут для указания параметров конвертации массива
|
||||||
|
|
||||||
//Поля заголовка сообщения
|
//Поля заголовка сообщения
|
||||||
const SHEADER_CONTENT_TYPE_JSON = "application/json"; //Значение "content-type" для JSON
|
const SHEADER_REQ_CONTENT_TYPE_JSON = "application/json"; //Значение "content-type" для JSON
|
||||||
|
const SHEADER_RESP_CONTENT_TYPE_JSON = "application/json;charset=utf-8"; //Значение "content-type" для JSON
|
||||||
|
|
||||||
//------------
|
//------------
|
||||||
// Тело модуля
|
// Тело модуля
|
||||||
@ -65,7 +66,10 @@ const converXMLArraysToJSON = (obj, arrayKey) => {
|
|||||||
//Обработчик "До" для полученного сообщения
|
//Обработчик "До" для полученного сообщения
|
||||||
const before = async prms => {
|
const before = async prms => {
|
||||||
//Если пришел запрос в JSON
|
//Если пришел запрос в JSON
|
||||||
if (prms.options.headers["content-type"] == SHEADER_CONTENT_TYPE_JSON) {
|
if (
|
||||||
|
prms.options.headers["content-type"] &&
|
||||||
|
prms.options.headers["content-type"].startsWith(SHEADER_REQ_CONTENT_TYPE_JSON)
|
||||||
|
) {
|
||||||
//Конвертируем полученный в JSON-запрос в XML, понятный серверной части
|
//Конвертируем полученный в JSON-запрос в XML, понятный серверной части
|
||||||
let requestXML = "";
|
let requestXML = "";
|
||||||
try {
|
try {
|
||||||
@ -85,7 +89,10 @@ const before = async prms => {
|
|||||||
//Обработчик "После" для полученного сообщения
|
//Обработчик "После" для полученного сообщения
|
||||||
const after = async prms => {
|
const after = async prms => {
|
||||||
//Если пришел запрос в JSON
|
//Если пришел запрос в JSON
|
||||||
if (prms.options.headers["content-type"] == SHEADER_CONTENT_TYPE_JSON) {
|
if (
|
||||||
|
prms.options.headers["content-type"] &&
|
||||||
|
prms.options.headers["content-type"].startsWith(SHEADER_REQ_CONTENT_TYPE_JSON)
|
||||||
|
) {
|
||||||
//Конвертируем ответ, подготовленный сервером, в JSON
|
//Конвертируем ответ, подготовленный сервером, в JSON
|
||||||
parseRes = await parseXML(prms.queue.blResp.toString());
|
parseRes = await parseXML(prms.queue.blResp.toString());
|
||||||
//Доработаем полученный JSON - корректно конвертируем массивы
|
//Доработаем полученный JSON - корректно конвертируем массивы
|
||||||
@ -94,7 +101,7 @@ const after = async prms => {
|
|||||||
return {
|
return {
|
||||||
optionsResp: {
|
optionsResp: {
|
||||||
headers: {
|
headers: {
|
||||||
"content-type": SHEADER_CONTENT_TYPE_JSON
|
"content-type": SHEADER_RESP_CONTENT_TYPE_JSON
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
blResp: new Buffer(JSON.stringify(parseRes))
|
blResp: new Buffer(JSON.stringify(parseRes))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user