我试图PUT请求到Node.js的API编程后,以清除一个网址中的CloudFlare的缓存。 我现在用的是https://github.com/cloudflare/node-cloudflare库,但我无法弄清楚如何从CloudFlare的日志回调。 根据在同一回购测试文件,语法应该是这样的:
//client declaration:
t.context.cf = new CF({
key: 'deadbeef',
email: 'cloudflare@example.com',
h2: false
});
//invoke clearCache:
t.context.cf.deleteCache('1', {
files: [
'https://example.com/purge_url'
]
})
我怎么能宣读了此请求的回调? 我曾尝试在自己的代码如下:
client.deleteCache(process.env.CLOUDFLARE_ZONE, { "files": [url] }, function (data) {
console.log(`Cloudflare cache purged for: ${url}`);
console.log(`Callback:${data}`);
})
和:
client.deleteCache('1', {
files: [
'https://example.com/purge_url'
]
}).then(function(a,b){
console.log('helllllllooooooooo');
})
无济于事。 :(
我写了一个模块的NodeJS要清除高速缓存中的整个网站。 它扫描您的“公共”文件夹,建立完整的URL和清除它的CloudFlare:
您可以使用NPX运行:
npm install -g npx
npx purge-cloudflare-cache your@email.com your_cloudflare_key the_domain_zone https://your.website.com your/public/folder
但是,你可以安装并使用NPM太运行:
npm install -g purge-cloudflare-cache
purge your@email.com your_cloudflare_key the_domain_zone https://your.website.com your/public/folder
对于公共/文件夹树这样的:
├── assets
│ ├── fonts
│ │ ├── roboto-regular.ttf
│ │ └── roboto.scss
│ ├── icon
│ │ └── favicon.ico
│ └── imgs
│ └── logo.png
├── build
│ ├── main.css
│ ├── main.js
├── index.html
这将清除缓存文件:
https://your.website.com/index.html
https://your.website.com/build/main.css
https://your.website.com/build/main.js
https://your.website.com/assets/imgs/logo.png
https://your.website.com/assets/icon/favicon.ico
https://your.website.com/assets/fonts/roboto.css
https://your.website.com/assets/fonts/roboto-regular.ttf
清除缓存的CloudFlare的网址:
var Cloudflare = require('cloudflare');
const { CF_EMAIL, CF_KEY, CF_ZONE } = process.env;
if (!CF_ZONE || !CF_EMAIL || !CF_KEY) {
throw new Error('you must provide env. variables: [CF_ZONE, CF_EMAIL, CF_KEY]');
}
const client = new Cloudflare({email: CF_EMAIL, key: CF_KEY});
const targetUrl = `https://example.com/purge_url`;
client.zones.purgeCache(CF_ZONE, { "files": [targetUrl] }).then(function (data) {
console.log(`Cloudflare cache purged for: ${targetUrl}`);
console.log(`Callback:`, data);
}, function (error) {
console.error(error);
});
你可以查找的CloudFlare区是这样的:
client.zones.browse().then(function (zones) {
console.log(zones);
})
不要忘了安装当前客户端版本:
npm i cloudflare@^2.4.1 --save-dev
这可能发生,因为我的摩卡测试不等待回调返回。
https://github.com/mochajs/mocha/issues/362