Javascript 启动节点服务器,在每天的特定时间加载页面

Javascript 启动节点服务器,在每天的特定时间加载页面,javascript,node.js,windows,bash,Javascript,Node.js,Windows,Bash,我希望能够启动一个节点服务器,每天早上8点在localhost中加载一个页面,运行服务器几分钟(因为我根据页面上加载的内容发送电子邮件),然后每天重复执行相同的操作。有没有关于用最少的工具有效地完成这项工作的建议? 我可以使用的工具有bash脚本、nodejs和我安装的窗口机器中可用的工具。您可以使用这个nodejs包,但一旦服务器终止,就很难重新运行服务器 因此,选项是cron作业和nodejs代码的一些修改 您需要创建两个cron作业 一个将启动nodejs服务器 第二个将到达终点 cr

我希望能够启动一个节点服务器,每天早上8点在localhost中加载一个页面,运行服务器几分钟(因为我根据页面上加载的内容发送电子邮件),然后每天重复执行相同的操作。有没有关于用最少的工具有效地完成这项工作的建议?
我可以使用的工具有bash脚本、nodejs和我安装的窗口机器中可用的工具。

您可以使用这个nodejs包,但一旦服务器终止,就很难重新运行服务器

因此,选项是cron作业和nodejs代码的一些修改

您需要创建两个cron作业

  • 一个将启动nodejs服务器
  • 第二个将到达终点
crontab-e

然后创造

#this will start every day at 08:00 am
0 8 * * * node /path_to_app/app.js > /path_to_app/logs/log-file-$(date).txt
# this will start everyday at 08:01 am
1 8 * * * curl http://localhost:3000/startjob
你的nodejs代码

app.use('/startjob', function(req,res){
    console.log("starting job");
    // do steps here
    res.send("job done")
    console.log("going to exit node process");
    var date = new Date();
    var current_hour = date.getHours();
    console.log(date)
    process.exit(0)
});
  • >路径\u到\u app/logs/log file-$(date).txt
    这也会将节点脚本的日志写入文件

更新:

  1 8 * * * google-chrome http://localhost:3000/startjob

这可能是最好使用计划任务来完成的。好的,谢谢。对我来说,使用带有扩展的chrome来加载页面内容也很重要。我能用这个设置实现吗?抱歉,在最初的问题中没有提到这条信息。是的,当然,您只需更改第二个cron作业
18***谷歌浏览器即可http://localhost:3000/startjob
这将打开一个浏览器,您需要激活打开页面上的扩展。由于某些原因,我的Mac上的crontab无法工作。我将在另一台机器上试用,并发布结果,修复crontab问题,建议在MacOS.awsome上运行。很高兴认识@neelmeg