server服务端需要安装的几个插件
- npm init --yes
- npm i express
- npm i nodemailer
- node server.js
server.js ↓
const express=require('express');
const app=express();
const Mail=require('./module/mail.js')
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended : false}))
app.use(bodyParser.json())
let codeObj={}
app.get('/login',(req,res)=>{
res.send('ok')
})
app.get('/getCode',(req,res)=>{
let mail =req.query.mail;
let code =Math.floor(Math.random()*11000-1001);
codeObj[mail]=code;
console.log(codeObj);
Mail.send(mail,code,(state)=>{
if(state===1){
res.send('发送ok')
}else{
res.send('发送失败')
}
})
})
app.post('./reg',(req,res)=>{
let{code,mail,pass}=req.body
if(codeObj[mail]==code){
res.send('注册成功')
}else{
res.send('验证码错误')
}
})
app.listen(3003,()=>{
console.log('server start in port'+ 3003)
})
mail.js ↓ (在module文件下)
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
service: 'qq',
port: 465,
secure: true,
auth: {
user: "11111111111@qq.com",
pass: 'qweqweqweewqew'
}
});
let mail = {
transporter: transporter,
send(mail, content, callback) {
let mailOptions = {
from: '"Fred Foo ?" <11111111111@qq.com>',
to: mail,
subject: '欢迎注册√',
text: `${content}`,
html: `欢迎注册点菜系统,验证码为:${content},有效期为五分钟.`
}
this.transporter.sendMail(mailOptions, (error, info) => {
if (error) {
callback(-1);
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
callback(1);
});
}
}
module.exports = mail;
使用时请把文件放在对应的路径位置下 , 并且修改邮箱以及POP授权码 , 注释的位置基本上都需要修改 ; 主要看看大致的思路 , 自己编写的代码更容易修改 , 谢谢