#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"
И теперь он счастлив! это сработало!