TypeError: невозможно изменить структуру значения свойства до «null» или «undefined» - PullRequest
0 голосов
/ 03 августа 2020

У меня появляется следующее сообщение об ошибке в консоли сервера.

SOAP FAIL: Ошибка: превышено время ожидания 10000 мс. Ошибка: превышено время ожидания 10000 мс [2020-08-03T17: 22: 51.723-0000] [ERROR] Cra sh отчет создан, но не может быть отправлен: unhandledRejection Невозможно деструктурировать

> property `queryResult` of 'undefined' or 'null'. TypeError: Cannot
> destructure property `queryResult` of 'undefined' or 'null'.

Мой код ниже

invoke:async (conversation, done) => {
        // Get query from incoming message
        const text = conversation.text();
        var query = conversation.properties().query;
        conversation.logger().info('Query '+query );
       
        
        // Set modules
        const soapRequest = require('easy-soap-request');
        const path = require('path');
        const fs = require('fs');
        const xml2js = require('xml2js');
        const { match } = require('assert');
        
        //SOAP URL
        const url = 'https://cap.zudo.com/ws/apf/ticketing/MOS?WSDL';
        
        //Set headers
        const sampleHeaders = {
            'user-agent': 'sampleTest',
            'Content-Type': 'application/xml;charset=UTF-8',
            };
            
        const filenameIn = path.join(__dirname, '/request.txt');
        const filenameOut = filenameIn
        
        //Replace Query variable inside request.txt fileContent
        var REGEX = /<TKT:ProjectNum>(.+)<\/TKT:ProjectNum>/;
        var fileContent = fs.readFileSync(filenameIn, 'utf8');
        fileContent = fileContent.replace(
            REGEX,
            '<TKT:ProjectNum>' + query + '</TKT:ProjectNum>'
       );
    
        //Write the query
        fs.writeFileSync(filenameOut, fileContent, 'utf8');

        const xml = fs.readFileSync(path.join(__dirname, '/request.txt'), 'utf-8');
        
        //Callback
        let { queryResult } =  await soapRequest({ url: url, headers: sampleHeaders, xml: xml, timeout: 10000}).then(results => {
            return results;
            
        }).catch(e => {
            conversation.logger().info("ERROR "+e);
            conversation.reply(e).transition('NOK').keepTurn(true);
            done();
        });
        
        
        let { headers, body, statusCode } = await  queryResult ;

        xml2js.parseString(body,{ mergeAttrs: true }, (err, result) => {
                    if(err) {
                        conversation.logger().info("ERROR "+err);
                        conversation.reply(e).transition('NOK').keepTurn(true);
                              done();
                    }        
        
        conversation.logger().info("res: "+result);
        
        conversation.reply(result).transition('OK').keepTurn(true);
        done();
    })
  }

Кто-нибудь может мне помочь как решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...