禁用 Node.js Orchestrator 可能缓存到 return 总是最新的数据
Disable possible caching of Node.js Orchestrator to return always latest data
我想通过odata
获取最新数据。所以https://uipathspace.com/odata/Robots
returns所有的机器人。
但是当我更改例如我的机器人描述时:
并刷新 https://uipathspace.com/odata/Robots
。它正确显示更新后的文本:
但我使用 node.js Orchestrator 实现创建了一个应用程序。在这里我看不到描述的变化:
是否有硬核缓存的东西,如果有如何禁用它?我找不到那个设置。
问题是 res.send
被放在回调之外。所以它永远不会等待 REST api 调用的实际完成。
这是基本代码,它只获取第一个请求的静态结果,它从未更新结果:
app.get('/robots', function (req, res) {
...
var orchestrator = require('./authenticate');
var results = {};
var apiQuery= {};
orchestrator.get('/odata/Robots', apiQuery, function (err, data) {
for (row in data) {
results[i] =
{
'id' : row.id,
...
};
}
});
return res.send({results});
});
解决办法是移动res.send({results});
到orchestrator.get
,然后正确覆盖结果因为它正确等待回调:
app.get('/robots', function (req, res) {
...
var orchestrator = require('./authenticate');
var results = {};
var apiQuery= {};
orchestrator.get('/odata/Robots', apiQuery, function (err, data) {
for (row in data) {
results[i] =
{
'id' : row.id,
...
};
}
return res.send({results});
});
});
我想通过odata
获取最新数据。所以https://uipathspace.com/odata/Robots
returns所有的机器人。
但是当我更改例如我的机器人描述时:
并刷新 https://uipathspace.com/odata/Robots
。它正确显示更新后的文本:
但我使用 node.js Orchestrator 实现创建了一个应用程序。在这里我看不到描述的变化:
是否有硬核缓存的东西,如果有如何禁用它?我找不到那个设置。
问题是 res.send
被放在回调之外。所以它永远不会等待 REST api 调用的实际完成。
这是基本代码,它只获取第一个请求的静态结果,它从未更新结果:
app.get('/robots', function (req, res) {
...
var orchestrator = require('./authenticate');
var results = {};
var apiQuery= {};
orchestrator.get('/odata/Robots', apiQuery, function (err, data) {
for (row in data) {
results[i] =
{
'id' : row.id,
...
};
}
});
return res.send({results});
});
解决办法是移动res.send({results});
到orchestrator.get
,然后正确覆盖结果因为它正确等待回调:
app.get('/robots', function (req, res) {
...
var orchestrator = require('./authenticate');
var results = {};
var apiQuery= {};
orchestrator.get('/odata/Robots', apiQuery, function (err, data) {
for (row in data) {
results[i] =
{
'id' : row.id,
...
};
}
return res.send({results});
});
});