路由設計 以用戶註冊爲例介紹如何閉環
用戶註冊開發注意點:(1)使用郵箱註冊(2)驗證郵箱是否註冊 【目前真實開發業務大部分都是手機號註冊,這塊因爲沒有購買短信服務】
首先,在routers文件夾下新建user.jshtml
上圖中checkEmail、reg對應真實業務邏輯node
現附上checkEmail、reg業務實現代碼web
/** * 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下載
https://www.getpostman.com/
http://chromecj.com/web-devel...
先將項目跑起來chrome
npm run dev
RESTful API 最佳實踐
http://www.ruanyifeng.com/blo...
Nodejs RESTFul架構實踐之api篇
https://my.oschina.net/nodeon...
以本項目爲例,查詢用戶信息和更新用戶信息接口 可根據不一樣請求方式來實踐npm