【发布时间】:2021-03-12 19:25:46
【问题描述】:
我有一个页面,当您访问它时,它会运行测试。我希望我的测试每周运行一次,所以我试图创建一个每周访问我的快速路由的 cron 作业。有点像我提出了一个获取请求。
为了测试,我有一个每 2 分钟运行一次的 cron 作业:
//schedule job every 2 minutes
schedule.scheduleJob("*/2 * * * *", function () {
console.log('inside cron function')
});
router.get('/my_page_route_name', ensureAuthenticated, async function(req, res){
res.render('my_page_route_file', {
layout: 'dashboard.handlebars',
jsMain: 'my_page_route_js',
});
});
如果我将我的网址输入到http://localhost:1337/my_page_route_name,它就可以进入 router.get 请求。但是有没有一种方法可以触发我的 cron 作业来调用相同的路由并每 2 分钟呈现一次页面?
我不确定如何执行此操作,因为 router.get 函数使用 res.render,而且我的 cron 作业中没有 res 变量
{{ 编辑 }}
我的 cron 作业有效并触发对我的路由的 POST 请求:
schedule.scheduleJob("*/10 * * * *", async function() {
console.log('inside cron function');
const resp = await fetch("http://localhost:1337/my_page_route_name/", {
"headers": {
"content-type": "application/json"
},
"method": "post",
"body": JSON.stringify({
"username":"exvar",
"password":"examplevar2"
})
});
});
我创建了一个快速路由来接收 POST 请求;
router.post('/my_page_route_name', async function(req, res){
res.render('my_page_route_name_html', {
layout: 'dashboard.handlebars',
jsMain: 'my_page_route_name_jsmain',
});
})
如果我在邮递员中发出请求,我可以看到 posr 路由返回网页 html,但没有运行任何脚本,例如我的 html 文件中有 <script> document.querySelector('.breadcrumbs').append('[[ html loadded ]]') </script> 被加载,但代码似乎不是在我收到的回复中运行
【问题讨论】:
-
您是否尝试每 2 分钟获取一次路线?
-
最终我会让它在每个星期二获取路线,为了进行测试,我让它每 2 分钟运行一次,这样当我在本地运行它时我可以看到结果。我的 cron 每 2 分钟运行一次,我可以在本地机器上看到 console.log,我现在只是想弄清楚如何获取我的路线是的
标签: javascript node.js express cron