摘要:路由设计路由设计以用户注册为例介绍如何闭环用户注册开发注意点使用邮箱注册验证邮箱是否注册目前真实开发业务大部分都是手机号注册,这块由于没有购买短信服务首先,在文件夹下新建上图中对应真实业务逻辑现附上业务实现代码加密国际化工具类用户服务
路由设计
路由设计 以用户注册为例介绍如何闭环
用户注册开发注意点:(1)使用邮箱注册(2)验证邮箱是否注册 【目前真实开发业务大部分都是手机号注册,这块由于没有购买短信服务】
首先,在routers文件夹下新建user.js
上图中checkEmail、reg对应真实业务逻辑
现附上checkEmail、reg业务实现代码
/**
* user controllers
* add by wwj
* 2019-05-03 20:52:05
*/
var co = require("co");
var md5 = require("blueimp-md5"); //md5 加密
var i18n = require("i18n"); //i18n 国际化
var utils = require("../libs/utils"); //工具类
var User = require("../models/index").User; //用户
// var tokenService = require("../services/token"); //token服务
module.exports = {
/**
* 检测邮箱是否注册checkEmail
*/
checkEmail:function(req, res, next) {
//参数
var params = req.query || req.params;
//变量
var email = utils.trim(params.email);
if(!email){
utils.handleJson({
response: res,
msg: i18n.__("success"),
result: {
emailHadReg:false,
},
});
}
co(function*() {
var userResult = yield User.findOne({
where: {
email: email,
},
});
var result = false;
if(userResult){
result = true;
}
//success
utils.handleJson({
response: res,
msg: i18n.__("success"),
result: {
emailHadReg:result,
},
});
}).catch(function(error) {
//err
utils.handleError({
response: res,
error: error,
});
});
},
/**
* 注册 post
*/
reg: function(req, res, next) {
var params = req.body;
//变量
var email = utils.trim(params.email);
var password = utils.trim(params.password);
//检查用户名、密码是否为空
if (!email || !password) {
utils.handleJson({
response: res,
msg: i18n.__("emailOrPwdNull"),
});
return;
}
//检查是否注册过
co(function*() {
var userResult = yield User.findOne({
where: {
email: email,
},
});
//用户已被注册
if (userResult) {
utils.handleJson({
response: res,
msg: i18n.__("emailHadReg"),
});
return;
}
userResult = yield User.create({
email: email,
password: md5(password),
state: "1", //先默认已激活状态 //状态 0未激活邮箱、1已激活邮箱
});
if (!userResult) { //注册失败
utils.handleJson({
response: res,
msg: i18n.__("regFail"),
});
return;
}
//成功入库
var user = userResult.dataValues;
//删除密码
delete user.password;
//success
utils.handleJson({
response: res,
msg: i18n.__("regSuccess"),
result: {
user: user,
// accessToken: tokenService.setToken({
// uuid: user.uuid
// }), //token
},
});
}).catch(function(error) {
//err
utils.handleError({
response: res,
error: error,
});
});
},
};
【自测环节】使用Postman来测试验证接口正确性
Postman下载
https://www.getpostman.com/
http://chromecj.com/web-devel...
先将项目跑起来
npm run devRESTful API
RESTful API 最佳实践
http://www.ruanyifeng.com/blo...
Nodejs RESTFul架构实践之api篇
https://my.oschina.net/nodeon...
以本项目为例,查询用户信息和更新用户信息接口 可根据不同请求方式来实践
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/104080.html
摘要:多一个技能多一条出路,祝你在自学道路上越走越好,掌握自己的核心技能,不只是优秀,还要成为不可替代的人 NodeJs+Express+Mysql + Vuejs 项目实战 最近准备写一系列文章,全面讲述如何基于NodeJs + Express + Mysql + Vuejs 从零开发前后端完全分离项目; 文笔及技术可能在某些方面欠佳,请您指正,共同学习进步 前端:Vuejs全家桶 后端:...
摘要:课前学习对象阮一峰廖雪峰从当年的回调地狱到语法糖再到,通过不断的进化来更好的从代码层面同步方式写异步操作下面以语法糖为例介绍如何实现首先写个基于 Promise 课前学习Promise 对象 阮一峰http://javascript.ruanyifeng....Promise 廖雪峰https://www.liaoxuefeng.com/w... js从当年的回调地狱、到co语法糖再...
摘要:从本章开始,正式学习如何使用搭建一个博客。但通常我们都会有许多环境,如本地开发环境测试环境和线上环境等,不同的环境的配置不同,我们不可能每次部署时都要去修改引用或者。会根据环境变量的不同从当前执行进程目录下的目录加载不同的配置文件。 从本章开始,正式学习如何使用 Nodejs + Express + Mysql 搭建一个博客。 开发环境 首先说下开发环境安装的核心依赖版本: Node....
功能梳理完了以后,咱们就可以开始数据库表设计了: 数据库表图: showImg(https://segmentfault.com/img/bVbr9GC?w=1922&h=1140); 首先打开Navicat Premium 创建数据库 blog 配置如下: showImg(https://segmentfault.com/img/bVbr81Y?w=720&h=352); 课前学习:1、Sequ...
阅读 2560·2021-11-22 09:34
阅读 1645·2021-10-09 09:44
阅读 3283·2021-09-29 09:35
阅读 3900·2021-09-14 18:01
阅读 1829·2021-08-16 10:49
阅读 1385·2019-08-29 14:11
阅读 1076·2019-08-29 12:47
阅读 3314·2019-08-26 13:47