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 注意是新的 ...
随机推荐
- tabIndex-bootstrap中Get到的
网页键盘的无障碍访问性 其实加了这个,可以控制Tab键切换的顺序,聚焦等 这个属性,任何标签都可以添加,没有兼容性限制,属性值的范围:0-32767 当一个元素设置tabindex属性值为-1的时候, ...
- RabbitMq笔记(2)
今天收获不少,记个笔记. namespace RabbitMQTest { class Program { static void Main(string[] args) { Consumer(); ...
- cg基础
1. row-major or column-major 2.orthogonal matrices 3.why cameras always point along the world coordi ...
- Servlet中文乱码原因 解决 Get 和 Post 和客户端
一.Get方式的中文乱码 1) 使用如下页面表单内容: <form action="http://127.0.0.1:8080/day07/params" method=&q ...
- watch监听
watch: { getTitle:{ handler:function(val,oldval){ }, deep:true//对象内部的属性监听,也叫深度监听 }, },
- cx-oracle-------------------安装
这个东西弄完就报错.... 这个是Oracle官方的方法:https://oracle.github.io/odpi/doc/installation.html#windows 然而,你懂的,不能用啊 ...
- [AH2017/HNOI2017]影魔(主席树+单调栈)
设\(l[i]\)为i左边第一个比i大的数的下标.\(r[i]\)为i右边第一个比i大的数的下标. 我们把\(p1,p2\)分开考虑. 当产生贡献为\(p1\)时\(i\)和\(j\)一定满足,分别为 ...
- centos7 命令
firewall-cmd --zone=public --add-port=80/tcp --permanent 开启端口 systemctl stop firewalld.service 关闭服务 ...
- Linux 重启防火墙失败
CentOS 7 执行service iptables start出现redirecting to systemctl ...Failed to ...not loaded. 如果出现以下错误,好像说 ...
- linux 空间不够了 修改 /boot
1> 查看空间多少:df -h2> 查看当期内核: uname -r3> 查找内核 rpm -qa | grep kernel4> 删除多余的内核 yum remo ...