4.3 路由设计/RESTful API-博客后端Api-NodeJs+Express+Mysql实战
路由设计
路由设计 以用户注册为例介绍如何闭环
用户注册开发注意点:(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 dev
RESTful API
RESTful API 最佳实践
http://www.ruanyifeng.com/blo...
Nodejs RESTFul架构实践之api篇
https://my.oschina.net/nodeon...
以本项目为例,查询用户信息和更新用户信息接口 可根据不同请求方式来实践
相关推荐
zrtlin 2020-11-09
xuebingnan 2020-11-05
wikiwater 2020-10-27
heheeheh 2020-10-19
Crazyshark 2020-09-15
softwear 2020-08-21
ZGCdemo 2020-08-16
jczwilliam 2020-08-16
littleFatty 2020-08-16
idning 2020-08-03
jinxiutong 2020-07-26
lanzhusiyu 2020-07-19
Skyline 2020-07-04
xiaofanguan 2020-06-25
Aveiox 2020-06-23
dragonzht 2020-06-17