实现一个简单的注册界面后端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模型架构的更多相关文章

  1. 如何简单区分Web前后端与MVC

    MVC是开发所有软件所必须涉及的基本几个划分 M主要负责数据与模型,V主要负责显示C主要负责交互与业务所以不管是前端还是后端,都是有MVC的.MVC是一个对于软件简单的抽象,不管是M还是V,还是C都是 ...

  2. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  3. Node之简单的前后端交互

    node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...

  4. Node.js的cluster模块——Web后端多进程服务

    众所周知,Node.js是单线程的,一个单独的Node.js进程无法充分利用多核.Node.js从v0.6.0开始,新增cluster模块,让Node.js开发Web服务时,很方便的做到充分利用多核机 ...

  5. C#实现软件授权,限定MAC运行(软件license管理,简单软件注册机制)

    一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理. 基本原理:1.软件一运 ...

  6. C#软件license管理(简单软件注册机制)

    最近做了一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理.        ...

  7. 「小程序JAVA实战」小程序注册与后端联调(35)

    转自:https://idig8.com/2018/09/01/xiaochengxujavashizhanxiaochengxuzhuceyuhouduanliandiao35/ 小程序的后端spr ...

  8. 详细讲解:使用tp3.2.3完成简单的注册登录功能

    使用3.2.3进行了一个简单不过的注册登录功能,界面介绍: 1.注册: 2.登录: 3.登录成功后: 没错,就是简单的让你特别容易上手,上面运用到的知识有: (1)自动验证.自动完成 (2)sessi ...

  9. 最简单的注册美区Apple ID方法

    最简单方法注册苹果美区Apple ID 1.打开苹果官网链接 苹果官网 2. 点击右下角的 United States 3. 点击图片中的选项 4.点击右上角的选项创建新的Apple ID 注意是新的 ...

随机推荐

  1. Android 手势

    GestureDetector:手势监听类,通常在View的setOnTouchListener方法中设置TouchListener,在TouchListener的onTouch函数中把MotionE ...

  2. SVN Commit报错 svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted

    svn commit 文件出错 svn: E155037: Commit failed (details follow): svn: E155037: Previous operation has n ...

  3. tml兼容性

    于IE6下,不能识别我们的h5标签,解决办法 主动使用js创建header,footer等标签.--存在的问题,这种方法创建的元素,对于IE6来说,相当于自定义标签,而自定义标签属于 默认属于行内元素 ...

  4. HTML基础——网站信息显示页面

    1.语法和规范 HTML文件都是以.html或者.htm结尾的.建议使用.html结尾. HTML文件分为头部分(<head></head>)和体部分(<body> ...

  5. solarwind之安装

      1.  安装组件   2.  安装组件sql   3.  安装   4.  接受协议   5.  安装路径   6.  安装状态   7.  继续   8.  激活     9.  完成安装

  6. SPA SEO SSR三者有什么区别

    SPA通俗的说就是单页面应用(single page application) 优点 页面之间的切换非常快 一定程度减少了后端服务器的压力 后端程序只需要提供api,不需要客户端到底是web端还是手机 ...

  7. RegExp javascript正则表达式 :

    传统的查找字符串中的相关的字符 :<script type="text/javascript">var str='aaa23uihjkikh666jhjhk888kuh ...

  8. POJ-3660 Cow Contest Floyd传递闭包的应用

    题目链接:https://cn.vjudge.net/problem/POJ-3660 题意 有n头牛,每头牛都有一定的能力值,能力值高的牛一定可以打败能力值低的牛 现给出几头牛的能力值相对高低 问在 ...

  9. DES 加密

    package com.cloudunicomm.utils; import java.io.UnsupportedEncodingException; import java.security.Se ...

  10. 批量删除harbor中的镜像

    一 说明 这个是我第一篇博客,所以我想放上原创的东西,尽管我一直都很担心自己写得太low,但是总要学会尝试,学会改变自己,相信自己.在写这个脚本时,由于我接触LInux不是很多,能力有限,仅仅是为了让 ...