0

我有一个场景,我需要从 Sharepoint 子站点获取列表数据。

我的代码是这样的。

const nodejs_1 = require("@pnp/nodejs");
const sp_1 = require("@pnp/sp"); 


let sitesArray = ['site1', 'site2', 'site3', 'site4', 'site5']
for(let i = 0; i < sitesArray.length; i++){
    let participants = await importParticipantsFromSharepoint(sitesArray[i]);
    console.log(participants)
}
//following is separate lambda function
function importParticipantsFromSharepoint(protocol_code){
        return new Promise( async function(resolve, reject) {  
            const participants = [];
            try{
                 sp_1.sp.setup({
                    sp: {
                        fetchClientFactory: function () {
                            //on each function call I am updating the base url
                            return new nodejs_1.SPFetchClient("https://abcd.sharepoint.com/Proj/Active/" + protocol_code, "********************", "**********************");
                        }
                    }
                });
                let w = await sp_1.sp.web.get();// at second iteration its still printing the data from first iteration
                console.log(JSON.stringify(w));// 
                sp_1.sp.web.lists.getByTitle("Subject Tracking Log").items.top(1000).get().then(function (items) {
                    items.forEach(function(item){
                        
                    });
                    resolve(participants);
                });
            }catch(e){
                console.log(e)
                reject(e)
            }
        });
    }  

 

我的代码在 AWS Lambda 中运行。运行时:nodejs 10+

Sharepoint 中添加了一些参与者,我正在尝试获取它们以保存在数据库中。每个站点都有唯一的参与者,例如站点 1 中的参与者是 p1、p2、p3,站点 2 中的参与者是 pp1、pp2、pp3。当我的代码为 site1 运行时,我得到了正确的参与者,但对于 site2,我从 site1 得到了错误的参与者。我已经打印了日志并发现 fetchClientFactory 没有被更新。我没有直接访问 sharepoint 的权限,这是我第一次使用 Sharepoint nodejs lib。

4

0 回答 0