在你阅读这篇文章之前,请考虑我知道Javascript和节点的基础知识。但似乎我需要编写简单的Javascript解决方案来帮助其他人进行测试。解决方案包含许多JS脚本,这些脚本将在带有节点的詹金斯中执行。
大多数脚本都发送相互依赖的 rest 调用。
我正在使用节点请求模块来执行这些调用。
所以我面临的问题是异步执行。
因此,让我们想象一下,我们有一个对象,其中包含一个依赖对象。
parentObject = {'name': 'someName', 'id': 1, 'childObjects': [{'name': someName', 'id': 1},{'name': someName', 'id': 2}...]}
和 都有自己的终结点。所以我们可以克鲁德。parentObjectchildObjectschildObjects
问题来了。根据名称,我需要删除此对象。我使用以下代码来执行此操作:childObject
var request = require('request');
...
const objectToPreserve = ['someName1','someName2'...]
var options = {'method': 'GET', 'url': baseUrl + '/childObject'+urlParam + '&parentObejctid=' + parentObjectId, 'headers': {'Authorization': token}};
request(options,function(error,response){
if (error) throw new Error(error);
var childObjects = JSON.parse(response.body);
for (i of childObjects) {
var name = i.name;
var childObjectId = i.id;
if (objectToPreserve.indexOf(name) > -1 ) {
console.log(name,' preserved')
} else {
var options = {'method': 'DELETE', 'url': baseUrl + '/childObject' + urlParam + '&id=' + childObjectId, 'headers': {'Authorization': token}};
request(options,function(error,response){
if(error) throw new Error(error);
console.log(JSON.parse(response.statusCode));
});
}
}
})
删除后,我需要使用其他属性进行更新,或者将该代码放在块中。objectToPreserveif (objectToPreserve.indexOf(name) > -1 ) {...
此外,在内部有自己的内部,在初始删除和更新之后,我也需要向该第二级子对象添加属性。childObjectchildObject
结构如下所示:parentObject
parentObject
|-childObject1
||-childobject1.1
|-childObject2
||-childObject2.1
由于可能包含 100 多个子对象的原因,某些删除请求失败,状态代码为 500 或 504。因此,我想按顺序进行这些调用。parentObject
有人可以帮助解决这个问题,也许可以为假人解释如何使用请求模块重写代码?
绝地无双
相关分类