Node实现简单的注册时后端的MVC模型架构
实现一个简单的注册界面后端MVC模型架构
第一步:在生成的express框架的app.js中添加一个路由,代码如下:var api = require('./routes/api'); app.use('/api', api);
第二步 :.在routes中新建一个api.js实例化路由,代码如下:var express = require('express');var router = express.Router();
const userController = require("../controller/user.js");router.post("/user/register",userController.register);module.exports = router;
第三步 :在这个路由中引用业务逻辑层(在根目录下新建一个controller文件夹,在建一个user.js作为逻辑层)。
其中代码如下:
const UserM = require("../model/user.js");//引用M层模块
const crypto = require('crypto');//引入密码编译模块
const reginster = (req,res) = >{
const {name,password} = req.body;
UserM.findOneUser({name},(reqult)=>{
if(result.length>0){
res.json({
ret:true,
data:false
})
}else{
const hash = crypto.createHash('sha256');
hash.update(password);
UserM.saveUser({
name,
password:hash.digest('hex')
},()=>{
res.json({
ret:true,
data:true
})
})
}
})
}
module.exports = {
register
}
因为在C层中引入了M层,所以需要先将M层模板创建出来
在根目录下建立一个model文件夹里边建一个user.js文件作为模型层,模型层代码如下:
const mongoose = require("../utils/database.js");//引入数据库链接
const User = mongoose.mode('user',{
name : String,
password:String
})
const saveUser = (userInfo,succCb) = >{
const user = new User(userInfo);
user.save().then(()=>{
succCb();
})
}
const findOneUser = (userInfo,succCb)=>{
User.find(userInfo).then((result)=>{
succCb(result);
})
}
module.exports = {
saveUser,
findOneUser
}
又因为在模型层使用了数据库链接,所以要引用自定义的数据库链接模块
数据库链接模块就是在根目录下建立一个utils文件夹,在此文件夹下建立database.js文件,
其中代码如下:
var mongoose =require('mongoose');//需要先下载mongoose第三方模块
mongoose.connect('mongodb://127.0.0.1:27017/job',{useMongoClient:true});
mongoose.Promise = global.Promise;
module.exports = mongoose;
今天有点累了,代码暂写这么多,日后再完善
Node实现简单的注册时后端的MVC模型架构的更多相关文章
- 如何简单区分Web前后端与MVC
MVC是开发所有软件所必须涉及的基本几个划分 M主要负责数据与模型,V主要负责显示C主要负责交互与业务所以不管是前端还是后端,都是有MVC的.MVC是一个对于软件简单的抽象,不管是M还是V,还是C都是 ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- Node之简单的前后端交互
node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...
- Node.js的cluster模块——Web后端多进程服务
众所周知,Node.js是单线程的,一个单独的Node.js进程无法充分利用多核.Node.js从v0.6.0开始,新增cluster模块,让Node.js开发Web服务时,很方便的做到充分利用多核机 ...
- C#实现软件授权,限定MAC运行(软件license管理,简单软件注册机制)
一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理. 基本原理:1.软件一运 ...
- C#软件license管理(简单软件注册机制)
最近做了一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理. ...
- 「小程序JAVA实战」小程序注册与后端联调(35)
转自:https://idig8.com/2018/09/01/xiaochengxujavashizhanxiaochengxuzhuceyuhouduanliandiao35/ 小程序的后端spr ...
- 详细讲解:使用tp3.2.3完成简单的注册登录功能
使用3.2.3进行了一个简单不过的注册登录功能,界面介绍: 1.注册: 2.登录: 3.登录成功后: 没错,就是简单的让你特别容易上手,上面运用到的知识有: (1)自动验证.自动完成 (2)sessi ...
- 最简单的注册美区Apple ID方法
最简单方法注册苹果美区Apple ID 1.打开苹果官网链接 苹果官网 2. 点击右下角的 United States 3. 点击图片中的选项 4.点击右上角的选项创建新的Apple ID 注意是新的 ...
随机推荐
- JavaScript 基础 if switch 弹窗 运算符
脚本语言最重要的几个部分: 数据类型 运算符 控制语句 数组 方法(函数) 一.基础知识 关键字:系统定义 有意义的名字如 background link 等 标识符:自己定 比如class的名字a ...
- POJ 3723 Conscription (Kruskal并查集求最小生成树)
Conscription Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14661 Accepted: 5102 Des ...
- swift语言点评十八-异常与错误
1.错误类型与枚举的结合 enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNee ...
- map循环遍历
data.map(function(item){ item.show = false; //将拿到的data循环给每一项添加show属性 });
- NodeJS学习笔记 (1)资源压缩-zlib(ok)
原文: https://github.com/chyingp/nodejs-learning-guide/blob/master/README.md 自己的跟进学习: 概览 做过web性能优化的同学, ...
- DIV+CSS布局中自适应高度的解决方法
div乱跑问题 (文件<DIV+CSS布局中自适应高度的解决方法.rar>) float 是个很危险的东西 得小心使用 本来有一很好的关于CSS+DIV的论坛 不过现在关门了 甚是可 ...
- nginx开启gzip压缩后导致apk包下载不能正常安装
最后更新时间:2019/4/27 nginx一般都会开启gzip压缩,以提升传输性能. 配置如下: gzip on; gzip_comp_level 2; gzip_min_length 1k; gz ...
- 《Linux 进程间通信》命名管道:FIFO
命名管道的主要用途:不相关的进程之间交换数据. 命令行上创建命名管道: $ mkfifo filename 程序中创建命名管道: #include <sys/types.h> #incl ...
- 项目集成Hudson+SonarQube出现的一个问题
[ERROR] No plugin found for prefix 'sonar' in the current project and in the plugin groups [org.mort ...
- 微信开发出现 redirect-uri參数错误原因是设置回调页面域名不要加HTTP://
OAuth2.0 网页授权设置.回调页面域名不要加HTTP:// NND 微信的研发.你程序处理下非常麻烦吗?给个提示非常麻烦吗?让我查了1个多小时.