sp-запрос : попытка получить сведения о файле из sharepoint возвращает ECONNREFUSED

#node.js #npm #sharepoint #sp-request

Вопрос:

У меня есть следующий код, который успешно загружает файл test.sspkg в мой каталог приложений sharepoint. Теперь я пытаюсь использовать sp-запрос, чтобы доказать, что он действительно существует. Но я получаю ошибку ECONNREFUSED.

Сообщение об ошибке

Это показывает ошибку:

 [14:24:15] INFO: Checking if file (test.sppkg) is checked out
[14:24:15] INFO: File checkout type: 0
[14:24:17] Published file 1482ms
[14:24:17] And we're done...
trying to retrieve: https://mytenant.sharepoint.com/sites/JJTest/_api/web/GetFileByServerRelativeUrl(@FileUrl)/$value?@FileUrl='/sites/JJTest/AppCatalog/test.sppkg'
errored out
{ GotError: connect ECONNREFUSED 127.0.0.1:443
    at onError (/src/myplugins/node_modules/got/dist/source/request-as-event-emitter.js:140:29)
    at ClientRequest.request.on.error (/src/myplugins/node_modules/got/dist/source/request-as-event-emitter.js:157:17)
    at ClientRequest.emit (events.js:203:15)
    at ClientRequest.EventEmitter.emit (domain.js:448:20)
    at ClientRequest.origin.emit.args (/src/myplugins/node_modules/@szmarczak/http-timer/dist/source/index.js:43:20)
    at TLSSocket.socketErrorListener (_http_client.js:401:9)
    at TLSSocket.emit (events.js:198:13)
    at TLSSocket.EventEmitter.emit (domain.js:448:20)
    at emitErrorNT (internal/streams/destroy.js:91:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14) name: 'RequestError', code: 'ECONNREFUSED' }
 

Пакет

Это пакет узлов, который я использую для вызова SP API:

«зависимости»: { «sp-запрос»: «^3.0.0» }

Код:

     const sprequest = require('sp-request');

    await new Promise((resolve, reject) => {
          gulp
          .src(folderLocation)
          .pipe(
            spsync({
              username: uname,
              password: pwd,
              site: siteCatalogUrl   "/",
              libraryPath: catalogName,
              publish: true,
              verbose: true
            }))
          .on("finish", () => {
              var spr = sprequest.create({ username: uname, password: pwd });
      
            //https://mytenant.sharepoint.com/sites/JJTest/_api/web/getFileByServerRelativeUrl('/sites/JJTest/AppCatalog/test.sppkg')
              var filepath = `${siteCatalogUrl}/_api/web/GetFileByServerRelativeUrl(@FileUrl)/$value?@FileUrl='${encodeURIComponent("/sites/JJTest/AppCatalog/test.sppkg")}'`;
              console.log('trying to retrieve: '   filepath);
              var retrieveFileUrl = filepath;
              
              spr.get(filepath, {
                encoding:null
            })
            .then(data => {
                expect(fileContent.equals(data.body)).is.true;
                resolve();
            })
            .catch(data => {
              console.log('errored out')
              console.log(data)
              reject();
            });

            resolve();
          });  
      }); 
 

Что я пробовал:

Я попытался просто скопировать части выходных данных с моей консоли непосредственно в браузер. В частности, это вывод, который я получаю из своего оператора печати отладки:

 trying to retrieve: https://mytenant.sharepoint.com/sites/JJTest/_api/web/GetFileByServerRelativeUrl/(@FileUrl)/$value?@FileUrl='/sites/JJTest/AppCatalog/test.sppkg'
errored out
 

Наклеивание этого:
https://mytenant.sharepoint.com/sites/JJTest/_api/web/GetFileByServerRelativeUrl(‘/sites/JJTest/AppCatalog/test.sppkg’)

в браузер по мере работы URL-адреса. Он возвращает мне сведения о файле.

Можете ли вы сказать мне, где я ошибся? может быть, синтаксис замены @fileURL?

Ответ №1:

Я использую gulp версии 3.9.1. И я только что установил последнюю версию chai и sp-запроса.

Но попытался изменить конкретные версии на:

 "sp-request": "^2.1.3"
"gulp": "^3.9.1",
"gulp-spsync-creds": "2.3.8",
"chai": "3.5.0"
 

И теперь он счастлив! это сработало!