nodejs服务端MVC架构介绍

MVC架构本质:确定每一个js文件的职责
以nodejs数据管理系统为例,本文章代码仅为服务端演示代码,单独复制粘贴可能无效果。因为MVC并不是一门技术,而是一种项目架构思想

  • index.js:负责接收请求
  • router.js:负责将请求分发给C层
  • controller.js:C层负责处理业务逻辑(V与M之间的沟通)
  • views:V层:负责展示页面
  • model: M层:负责处理数据(增删改查)


/* 路由模块:只负责分发网络请求给C层,不处理 */
//导入C层
const controller = require('./controller.js');//1.导入express模块
const express = require('express');
//2.创建路由
var app = express();//路由分发
//Express支持链式语法
app.get('/',controller.showHeroList)
.get('/heroList',controller.getHeroList)
.post('/heroAdd',controller.doHeroAdd)
.get('/heroInfo',controller.getHeroInfo)
.get('/heroDelete',controller.doHeroDelete);//3.导出路由模块
module.exports = app;
/* C层:负责业务逻辑处理:M与C层之间的沟通 *///M层:操作数据库增删改查
const hero = require('./model/hero.js');module.exports = {showHeroList: (req, res) => {//服务端重定向到view/heroList.htmlres.writeHead(302, {'Location': 'views/heroList.html'});res.end();},getHeroList: (req, res) => {//1.展示首页列表数据hero.find((err, jsonData) => {console.log(jsonData);if (err) {throw err;} else {res.end(jsonData);};});},doHeroAdd: (req, res) => {//完成解析之后,将得到的数据存入json文件hero.add(req.body, (err) => {if (err) {//服务端不能直接返回js对象,因为服务器是给所有客户端使用,需要返回json对象res.end(JSON.stringify({err_code: 100,err_msg: err.err_msg}));} else {res.end(JSON.stringify({err_code: 0,err_msg: 'success'}));}});},getHeroInfo: (req, res) => {var heroID = req.query.id;//处理hero.find(heroID, (err, data) => {if (err) {throw err;} else {res.end(data);};});},doHeroDelete: (req, res) => {//(1)获取请求参数let heroID = req.query.id;//(2)处理请求hero.delete(heroID, (err) => {if (err) {throw (err);} else {//服务端重定向刷新首页res.writeHead(302, {'Location': 'views/heroList.html'});res.end();}});}
}

nodejs服务端MVC架构介绍相关推荐

  1. Nodejs 服务端MVC架构

    前言 之前分享了一篇 Nodejs 与 MySQL 数据库交互 的文章,这篇文章主要是讲 mysql模块的使用方式.今天准备分享一篇 Nodejs 服务端 MVC 架构,通过服务端提供的API来完成数 ...

  2. 浅谈游戏服务端开发-架构

    网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏demo,服务端程序可以是一个单线程的服务进程.它包含网络通信.业务逻辑 ...

  3. 服务端监控架构设计与实践

    作者:vivo互联网服务器团队-Deng Haibo 一.业务背景 当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的 ...

  4. github nodejs mysql_GitHub - lizhuohaicode/express: nodejs服务端开发(Express+Mysql)---小k博客...

    nodejs服务端开发(Express+Mysql) 项目展示 git clone git@github.com:htmlk/express.git 2.再导入express.sql到数据库,数据库名 ...

  5. 微信小程序初见+nodejs服务端 (一个简单的博客)

    推荐网址: 腾讯云快速开发(nodejs前后端):https://developers.weixin.qq.com/miniprogram/dev/qcloud/qcloud.html#%E5%AF% ...

  6. Nodejs服务端编程基础

    为什么要学习后端编程: 目前市场上的需求,要求前端人员掌握后端编程   方便和后端开发人员进行交互   能独立开发完整系统,成为全栈工程师 后端编程做什么: 根据客户端请求,处理业务逻辑, 响应用户数 ...

  7. IM开发基础知识补课(二):如何设计大量图片文件的服务端存储架构?

    1.前言 一个完善的IM系统中通常充斥着大量的图片内容,包括:用户头像.图片消息.相册.图片表情等等,那么在做服务端架构设计时该如何存储这些图片呢? 本文分享的是典型Web应用中大量图片的服务端存储加 ...

  8. linux 插件 概念,服务端概念功能介绍

    服务端概念 服务端是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据.是实现游戏特色化的重要途径,也是最直接可以通过游戏表现出来的技术,比如你要修改某个NPC的参数,重加载后,在游戏内立 ...

  9. php socket 握手,python Socket之客户端和服务端握手详细介绍

    这篇文章主要为大家详细介绍了python Socket之客户端和服务端握手,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1 ...

最新文章

  1. php7 v8js,Centos 7PHP7.0 安装V8JS扩展几乎都能安装成功
  2. Linux(Centos7)安装Docker
  3. 说一下对象或数组转JSON怎么转【fastjson】
  4. 使用ABAP和JavaScript代码生成PDF文件的几种方式
  5. 电话光端机的电话接口类型有哪些?
  6. 【HDU - 5777】domino(贪心)
  7. NatureGenetics:所有五个异源四倍体棉花起源被厘清
  8. React+Webpack快速上手指南
  9. Dart核心语言基础const关键字与final关键字的区别
  10. 高考计算机模拟系统,高考工厂模拟
  11. 【Flink】The Kryo Output still contains data from a previous serialize call. It has to be flushed or
  12. butterknife 不能绑定错误
  13. 图像模式识别与计算机视觉的,图像处理、计算机视觉和模式识别领域有哪些区别和联系...
  14. 自己调用NTDLL函数
  15. Selenium爬虫 -- 用户动态数据爬取
  16. 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
  17. 大厂Sketch组件库源文件
  18. 去除Edge打开外部应用时的提醒
  19. 配置 Android 的 SDK, DNK, JDK, ANT 环境
  20. docker 常用命令(二)——容器命令

热门文章

  1. python 二维数组 长度_Python创建二维数组的正确姿势
  2. Java使用Proxy和CGLib实现动态代理
  3. Jupyter 配置 Java环境,写Java代码,测试成功
  4. 十一、练习:爬取图虫网付费图片
  5. 北京内推 | 微软亚洲研究院MSRA STCA招聘多模态算法实习生
  6. 今日arXiv精选 | 23篇顶会论文:ICASSP / ICCV / CIKM / ICME / AAAI
  7. Performer:用随机投影将Attention的复杂度线性化
  8. 直播预告 | 旷视研究院王毅:用于条件图像生成的注意力归一化
  9. 第三届“中国法研杯”司法人工智能挑赛(CAIL2020)即将启动
  10. AAAI 2020 开源论文 | 语义感知BERT(SemBERT)