Iam正在寻找节点时间调度程序,用于向用户发送电子邮件并找到此cronjob,但下面似乎无法正常工作,我的代码是函数调用API
我对节点js很新,任何人都可以帮我解决这个问题'在运行服务器时它没有进入'app.get'功能本身。
var cron = require('cron');
var cronJob = cron.job("0 */10 * * * *", function(){
app.get('/email',function(req, res) {
console.log("second")
console.log(req.body.htmltag);
db.collection('UserData', function(err, collection) {
collection.find({},{email:1}).toArray(function(err, items) {
res.send(items);
var transporter = nodemailer.createTransport('smtps://riyas.1012@gmail.com:aslihaabu@3734@smtp.gmail.com');
for(i=0;i<items.length;i++)
{
var mailOptions = {
from: ' <svatsan53@gmail.com>', // sender address
to: items[i].email, // list of receivers
subject: 'Hello ✔', // Subject line
text: 'Hello world ', // plaintext body
html: req.body.htmltag // html body
};
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
})
}
});
});
});
});
cronJob.start();
答案 0 :(得分:0)
app.get('/email',function(req, res) {})
此代码定义为路由器/email
我认为你正在调用api /email
,但这段代码错了
也许你应该这样做:
var request = require('request');
request.get('/email', function (err, res, body) {
if (err || res.statusCode !== 200) {
throw new Error('invalid url');
}
console.log(body);
// send email here
});
尝试这样的cron代码:
var CronJob = require('cron').CronJob;
new CronJob('* * * * * *', function() {
console.log('You will see this message every second');
}, null, true, 'America/Los_Angeles');
检查usage的cron模块
希望它可以提供帮助