nodejs调用接口,并把接口数据通过邮件发送(可添加附件)

公司要求晚上营业结束后 通过givex的接口获取这1w个用户的积分余额,会员等级,过期积分,及续期积分及续期日信息,所以就写了这个
主要代码
index.js

const http = require('http'); 
const fs=require('fs');
const qs = require('querystring');  
const SendMail=require('./mail');
var fWrite = fs.createWriteStream("./file/result.csv");  
var  ErrorWrite= fs.createWriteStream("./file/error.csv"); 
var  FailWrite= fs.createWriteStream("./file/fail.csv");  
var i=-1;
var stringData;
 //写入文件
function WriteFileSuccess(WriteData){
     fWrite.write(WriteData);
}
function WriteFileFail(WriteData){
     FailWrite.write(WriteData);
}
function WriteFileError(WriteData){
     ErrorWrite.write(WriteData);
}
//获取积分
function _POST()
{
    i++;
    if(i==3){
        SendMail('result.csv','fail.csv')
        return false;
    }
     console.log(i)
    var post_data = {  
        "GivexNumber":stringData[i].split(',')[1]
       };  
    var content = qs.stringify(post_data);  
    var options = {  
       hostname:'10.1.33.44',   //换成实际存在的
       path:'/api/Points/Balance',  //换成实际存在的
       method:'POST',  
       headers:{  
        'Content-Type':'application/x-www-form-urlencoded',  
       }  
    };  

    var req = http.request(options, function (res) {  
        // console.log('STATUS: ' + res.statusCode);  
        // console.log('HEADERS: ' + JSON.stringify(res.headers));  

        res.setEncoding('utf8');  
        res.on('data', function (chunk) {  
             console.log('BODY: ' + chunk); 
            var chunk=JSON.parse(chunk)
            console.log(chunk.PointsBalance)
            if(chunk.Success){
                WriteFileSuccess(stringData[i]+','+chunk.PointsBalance+','+chunk.MemberTier+','+chunk.PointsToBeExpired+','+chunk.PointsExpiryDate+'\r\n')
            }
            else{
                WriteFileFail(stringData[i]+chunk.Message+'\r\n')
            }

            return chunk
        }).on('error', function(err) {  
            WriteFileError(stringData[i]+'\r\n')
          }).on('end',function(){
        //请求结束
        _POST(stringData[i])
    });   
    });  

    req.on('error', function (e) {  
        WriteFileError(stringData[i]+'\r\n')
        console.log('problem with request: ' + e.message);  
    });  

    // write data to request body  
    req.write(content);  
    req.end();

}
// // 异步读取
fs.readFile('test.csv', function (err, data) {
   if (err) {
       return console.error(err);
   }
   stringData=data.toString().split('\r\n');
    _POST()
});


mail.js

'use strict';
const nodemailer = require('nodemailer');
const fs=require('fs');
function SendMail(attach1,attach2){

   nodemailer.createTestAccount((err, account) => {
    // create reusable transporter object using the default SMTP transport
    let transporter = nodemailer.createTransport({
        host: 'smtp.exmail.qq.com',
        port: 25,
        secure: false, // true for 465, false for other ports
        auth: {
            user: "denglin.wang@edaysoft.cn", // generated ethereal user
            pass: "yourpass" // generated ethereal password
        }
    });

    // setup email data with unicode symbols
    let mailOptions = {
        from: 'denglin.wang@edaysoft.cn', // sender address
        to: 'denglin.wang@edaysoft.cn', // list of receivers
        subject: '【最近有订单会员随机10000个】', // Subject line
        // text:
        html: '<b>Hi Andy</b><br/>\r\n 已通过givex的接口获取这1w个用户的账户情况,详情请见附件\r\nBR\r\n__Denglin' ,// html body
         attachments: [
        {   // utf-8 string as an attachment
            filename: attach1,
            content: fs.createReadStream(attach)
        },
         {   // utf-8 string as an attachment
            filename: attach2,
            content: fs.createReadStream(attach)
        }
        ],
    };

    // send mail with defined transport object
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        console.log(mailOptions);
        fWrite.write(JSON.stringify(mailOptions))
        console.log(info)
        console.log('Message sent: %s', info.messageId);
    });
});
}
module.exports=SendMail

源码地址:https://download.csdn.net/download/qq_34117170/10295874

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值