程序员的浪漫——Node.js实现通过邮件定时给女朋友发情话

本文介绍了Node.js的基础,强调其作为JavaScript运行时环境的角色,以及它在Web服务器后台、命令行工具和npm等领域的应用。重点讲解了如何使用Node.js结合npm包实现定时发送邮件服务,包括安装邮件发送模块、获取情话接口数据、使用定时器等功能,最后提到了如何在云服务器上部署并使用pm2进行进程管理,确保定时任务的稳定运行。

Node.js是什么?

Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine.Node.js是一个构建于谷歌V8引擎的JavaScript运行时环境。

  • Node.js不是一门语言,不是库,不是框架
  • Node.js是一个js运行时的环境
  • Node.js可以解析和运行js代码,

以前只有浏览器可以运行js,现在js可以完全脱离浏览器运行,一切都归功于Node.js。

Node.js能做什么?

  • Web服务器后台
  • 命令行工具
  • npm
  • git
  • hexo
  • 对于前端工程师来讲,接触最多的是它的命令行工具

Npm世界上最大的开源生态系统,绝大多数的JavaScript相关的包,都存放在了npm上,这样做的目的是为了让开发人员能够更好的使用node.js。

通过node实现定时发邮件的服务

  1. 首先通过node的npm包管理器安装邮件发送模块
npm install nodemailer

接着在js文件中加入以下代码:

const nodemailer = require("nodemailer");
// 发送邮件函数
async function sendMail(text) {
  var user = "xxx@qq.com";//自己的邮箱
  var pass = "xxx"; //qq邮箱授权码,如何获取授权码请百度
  var to = "waitfor_1153@qq.com";//对方的邮箱
  let transporter = nodemailer.createTransport({
    host: "smtp.qq.com",
    port: 587,
    secure: false,
    auth: {
      user: user, // 用户账号
      pass: pass, //授权码,通过QQ获取
    },
  });
  let info = await transporter.sendMail({
    from: `亲爱的老公<${user}>`, // sender address
    to: `亲爱的老婆<${to}>`, // list of receivers
    subject: "亲爱的老婆", // Subject line
    text: text, // plain text body
  });
  console.log("发送成功");
}

//测试一下
sendMail('你好')

  1. 安装好邮件发送功能以后,各位直男程序猿是不是又苦于不知道情话如何发呢?别担心,已经给你准备好了。先安装axios获取接口数据
	npm i axios

然后在js文件中加入如下代码,这里不仅给你准备了情话的接口,还有朋友圈、骂人、毒鸡汤的接口,总有一个适合你,只需要替换掉url就可以:

const {default: Axios} = require('axios');
function getHoneyedWords() {
  //http://lwfcll.top:3000/pyq 朋友圈
  //http://lwfcll.top:3000/nmsl 骂人
  //http://lwfcll.top:3000/chp  情话
  var url = 'http://lwfcll.top:3000/chp';
  //获取这个接口的信息
  return Axios.get(url);
}

那么我们接下来测试一下:

getHoneyedWords().then(res => {
  console.log(res.data);
  
});

执行node 你的文件名.js然后就会有下面的输出:

在这里插入图片描述

  1. 有了发送邮件的功能是不是还要有个自动发送的功能呢?下面我们来安装定时器。
	npm install node-schedule 

安装完成以后写入一下代码:

const schedule = require("node-schedule");
//每天下午5点21分发送
schedule.scheduleJob({ hour: 17, minute: 21 }, function () {
  console.log("启动任务:" + new Date());
  getHoneyedWords().then((res) => {
    console.log(res.data);
    sendMail(res.data);
  });
});

然后重新运行一下服务,就可以每天下午5:21发送了,但是咱们的电脑又不可能一直运行这个服务,所以把它放到云服务器上是最好不过啦。

  1. 将node项目运行在云服务,并实现挂载

(一)、在服务器上安装pm2

		npm install -g pm2

(二)、安装完成后显示 pm2安装的位置
在这里插入图片描述

(三)、使用以下命令将pm2放入系统路径下就可以了 注意把上面安装的路径(我的是/app/nodejs/lib/node_modules/pm2/bin/pm2)替换一下,在后面加上 /usr/local/bin,否则直接使用pm2会显示命令不存在。

ln -s /app/nodejs/lib/node_modules/pm2/bin/pm2 /usr/local/bin

(四)、然后将你刚才写好的文件上传到云服务中,并且通过cd进入到这个文件夹,执行以下代码:

pm2 start 你的文件名.js

出现以下代表大功告成:
在这里插入图片描述
到这里就实现了通过node实现通过邮件定时给女朋友发情话的功能啦!你学到了吗?小伙伴们,快去尝试一下,给你女朋友一个惊喜吧,或者可以用毒鸡汤给基友一个惊吓哦~~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值