问题描述
我有一个场景,我需要从 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 中添加了一些参与者,我正在尝试获取它们以保存在 db 中。每个站点都有唯一的参与者,就像在站点 1 中的参与者是 p1、p2、p3,在站点 2 中的参与者是 pp1、pp2、pp3。当我的代码为 site1 运行时,我得到了正确的参与者,但对于 site2,我从 site1 得到了错误的参与者。我已经打印了日志并发现 fetchClientFactory 没有被更新。我无法直接访问 sharepoint,这是我第一次使用 Sharepoint nodejs lib。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)