Node.js之发送手机验证码简易版功能实现

先看成果在这里插入图片描述这里已经成功了。

接下来先是主页部分

<form id="myform">
    请输入手机号: <input type="text" id="phoneNum" name="phone">
    <button type="button" onclick="sendCode()">获取验证码</button>
    <br>
    验证码: <input type="text" id="code" name="code">
    <br>
    <input type="file" name="myfile">
    <br>
    <button type="button" onclick="verifyCode()">登录</button>
</form>

JS代码

    function sendCode() {
        let phoneNum = $('#phoneNum').val()
        // 这里正则验证手机格式
        $.ajax({
            url:'/sendCode',
            data:{phoneNum},
            type:'post',
            success(respData){
                // 1.验证码发送成功
                respData.data ? alert('验证码已经发送') : alert('手机填写错误')// 2.验证码发送失败
                console.log(respData)
            }
        })
    }
    function verifyCode() {
        let phone = $('#phoneNum').val()
        let code = $('#code').val()
        $.ajax({
            url:'/verifyCode',    
            type:'post',
            data:{phone,code},
            // processData: false,   // jQuery不要去处理发送的数据
            // contentType: false,   // jQuery不要去设置Content-Type请求头
            success(respData){
                console.log(respData)
                if(respData.data ){
                    alert('登录成功')
                    location.href = 'index.html'
                }else {
                    alert('登录失败')
                    console.log(respData.yuanyin)
                }
            }
        })
    }

关于CSS样式每个人有不同的风格这里就不写了
接下来是链接接口app.js ,需下载的包都写在了后面

const express = require('express')         //服务器  npm install express -D
const favicon = require('serve-favicon')   // 小图标 npm install serve-favicon -D
const logger = require('morgan')           // 日志 npm install morgan -D
const bodyParser = require('body-parser')  //  npm install body-parser -D
const smsRouter = require('./router/smsRouter')    //路由文件下的名字
let session = require(`express-session`)   //npm install express-session -D
const  myapp=express()
// //配置日志
myapp.use(logger('dev'))
myapp.use(session({
    name:'yang',
    secret:'123',
    cookie:{maxAge:600000},
    saveUninitialized:true,
    resave:true,
    rolling:true
}))

//配置服务器对象的post解析
myapp.use(bodyParser.urlencoded({extended:false}))
myapp.use(bodyParser.json())

// 服务器对象配置路由
myapp.use(smsRouter)


// 路由之后静态资源之前配置ejs
myapp.set('view',`${__dirname}/src/view`)
myapp.set(`view engine`,`ejs`)//需要告诉express那个写文件是ejs

//配置express的静态资源文件路径
myapp.use(express.static(__dirname+'/src')) //所有静态资源都到src里面去找
myapp.use(favicon(__dirname+'/src/images/p1.jpg'))  //小图标

myapp.listen(8888,()=>{
    console.log ("这是我的第十个服务器")
})

接下来是配置路由

const EXPRESS = require(`express`)
let smsCtrl = require('../controller/smsCtrl')

const ROUTER = EXPRESS.Router()

ROUTER.post('/sendCode',smsCtrl.send)
ROUTER.post('/verifyCode',smsCtrl.verify)




module.exports = ROUTER

配置controller

let sms = require('leancloud-storage')

sms.init({
    appId:'???',
    appKey:'???',
    serverURLs:'???'
})   //这些在官网leanCloud里面能找到,具体位置看下面的图片
module.exports={
    send(req,resp){
        let {phoneNum} = req.body;
        console.log(phoneNum)
        sms.Cloud.requestSmsCode({
            mobilePhoneNumber:phoneNum, //预设手机号,默认为手动输入
            name:'我爱你',//自己设置
            code:'验证码',
            ttl:1,//有效时间为一分钟
            sing:'web'
        }).then(res=>{
            resp.send({
                code:200,
                data:true
            })
        }).catch(err=>{
            console.log(err)
            resp.send({
                code:400,
                data:false
            })
        })
    },
    verify(req,resp){
        console.log(req.body)
        let {phone,code} = req.body
        sms.Cloud.verifySmsCode(code,phone).then(res=>{//匹配
            resp.send({
                code:200,
                data:true
            })
        }).catch(err=>{//不匹配
            resp.send({
                code:400,
                data:false,
                yuanyin:err
            })
        })
    }
}

在这里插入图片描述
到这里功能基本上就能实现了,对了为了方便我还加了个上传功能,当然如果你不想使用也可以删掉,然后关于 一点特别重要一定要勾上看下图:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jet_closer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值