nodejs 定时 mysql_4.9 定时任务schedule-博客后端Api-NodeJs+Express+Mysql实战

本文展示了如何使用Node.js的node-schedule库来实现每日定时发送邮件通知天气的功能。通过调用高德地图API获取天气信息,并结合nodemailer发送邮件服务,实现了在每天下午6点自动发送包含天气预报的邮件。
摘要由CSDN通过智能技术生成

node-schedule

使用示例

比如每天下午6点发邮件通知天气

const schedule = require('node-schedule'); //定时服务

//每天18h运行天气预报任务

schedule.scheduleJob('0 0 18 * * *', function () {

console.log('schedule:' + new Date());

email.sendEmail();//执行邮件发送

});

sendEmail 执行邮件发送,此时借助nodemailer邮件服务(https://www.npmjs.com/package...)

const nodemailer = require('nodemailer'); //邮件服务

const axios = require('axios');

module.exports = {

/**

* 借助高德地图 获取天气

*/

getTianqi: async function (citycode){

let { status, data } = await axios.get(`https://restapi.amap.com/v3/weather/weatherInfo?city=${citycode}&extensions=all&key=这里是自己申请的高德key`);

if (status === 200 && data && data.forecasts && data.forecasts.length) {

let { city, casts } = data.forecasts[0];

let { week, dayweather, nightweather, daytemp, nighttemp, daypower, nightpower} = casts[1];

return `周${week} ${city}:${nightweather}${nighttemp}°~${dayweather}${daytemp}°,风${daypower}~${nightpower}`;

}else{

return ''

}

},

/**

* 发送邮件

*/

sendEmail: async function(){

let self = this;

try {

let bj = await self.getTianqi('110105');//获取天气-朝阳区 110105

//发送邮件

let transporter = nodemailer.createTransport({

service: 'qq',

auth: {

user: "xxxxxx@qq.com",

pass: "xxxxx",//授权码 (可在qq邮箱获取)

}

});

await transporter.sendMail({

from: `"系统"`,

to: "xxxx@qq.com",

subject: `天气预报`,

text: bj,

});

// console.log('Message sent success: ' + JSON.stringify(info));

} catch (error) {

console.log(error);

}

},

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值