Библиотеки
Первое, что мы сделаем, это получим необходимые библиотеки
npm i node-sp-auth request-promise gd-sprest
- node-sp-auth используется для аутентификации в SharePoint.
- запрос-обещание, используемый для выполнения HTTP-запроса.
- gd-sprest используется для генерации формата HTTP-запроса.
Импорт библиотек
Теперь, когда у нас есть необходимые библиотеки, мы можем импортировать их в файл скрипта.
var spauth = require('node-sp-auth');
var request = require('request-promise');
var $REST = require("gd-sprest");
Подключиться к SharePoint
Теперь, когда библиотеки доступны, мы подключимся к SharePoint. см. в документации . Дополнительные примеры подключения к различным средам Для этого примера мы подключимся к SPO.
// Log
console.log("Connecting to SPO");
// Connect to SPO
var url = "https://[tenant].sharepoint.com/sites/dev";
spauth.getAuth(url, {
username: "[SPO Login]",
password: "[SPO Password]",
online: true
}).then(options => {
// Log
console.log("Connected to SPO");
});
Сгенерировать запрос
В этом примере кода будут получены файлы, хранящиеся в подпапке «sprest» библиотеки «Активы сайта». Мы будем использовать библиотеку $REST gd-sprest для генерации информации о запросе.
API REST для SharePoint Intellisense

Библиотека gd-sprest автоматически предоставляет Intelliense.
// Get the web
var info = $REST.Web(url)
// Get the 'Site Assets' library
.Lists("Site Assets")
// Get the root folder
.RootFolder()
// Get the 'sprest' sub-folder
.Folders("sprest")
// Get the files in the folder
.Files()
// Get the request information
.getInfo();
Информация о заголовке запроса
Чтобы запрос был успешным, нам нужно будет скопировать информацию заголовка из аутентификации SP.
// Copy the headers from the SP authentication
for (var key in options.headers) {
// Set the header
info.headers[key] = options.headers[key];
}
Выполнить запрос
Мы выполним запрос Get/Post в зависимости от типа. см. в документации Дополнительные примеры выполнения запросов . Ожидается, что возвращаемый объект будет объектом JSON, поэтому мы можем легко преобразовать его в переменную. В этом примере предполагается набор файлов, поэтому мы проанализируем «результаты» и выведем каждый файл на консоль.
// Execute the request, based on the method
request[info.method == "GET" ? "get" : "post"]({
headers: info.headers,
url: info.url,
body: info.data
}).then(
// Success
response => {
var obj = JSON.parse(response).d;
if (obj.results && obj.results.length > 0) {
// Parse the results
for (var i = 0; i < obj.results.length; i++) {
// Log
console.log(obj.results[i]);
}
} else {
// Log
console.log(obj);
}
},
// Error
error => {
// Log
console.log("Error executing the request", error);
}
);
Пример вывода
