原生node创建路由的分层
原生node创建路由的分层
为了方便维护 可以将路由内容跟创建路由以及服务端基本结构分来
可以分为四层
服务端的基本基本结构 这个结构就能通过上面暴露的内容 拼成完整的,这里完全是createServer的逻辑 跟业务代码无关 可以说是比较固定的
这里完全是createServer的逻辑 跟业务代码无关 可以说是比较固定的
const http = require('http');
const PORT = 8000;
const serverHandle = require('../app');const server = http.createServer(serverHandle);
server.listen(PORT);
再把处理 设置一些基本信息、基本设置的配置封装一个文件 然后通过 module.exports暴露,这也和业务代码关联较小
属于系统 服务器基本设置
const apiContent = require('./apiContent');
const serverHandle = (req,res) => {res.setHeader('Content-type','application/json');//业界规范 就是用json格式const Data = apiContent(req,res);if(Data){res.end(JSON.stringify(Data));return;}//访问的是没定义的接口 返回res.writeHead(404,{'Content-type':'text/plain'});res.write('404');res.end();
};module.exports = serverHandle;
把对应接口的被访问时的处理的内容封装一个文件 然后通过 module.exports暴露 就是只管路由接口,返回正确格式,他不管数据怎么计算怎么处理等不归他考虑
const apiContent = (req,res) => {const method = req.method;const url = req.url;const path = url.split('?')[0];if(method === "GET" && path === "/"){return {msg:'/ GET'}}if(method === "POST" && path === "/login"){return {msg:'/login POST'}}
}module.exports = apiContent;
在这里对数据进行处理,计算等的内容 只关心数据 最后返回数据并暴露
const getList = (author,keyword) => {return[ //一般这里是返回的数据库中提取查找的数据 这里为了方便直接写出来的{id:1,title:'标题A',content:'内容A',createTime:1546610491112,author:'zhangsan'},{id: 2,title:'标题B',content:'内容B',createTime: 1546610524373,author: 'zhangsan'}]}module.exports = {getList,
};
在服务器项目中 经常写两个文件夹 router和controller 他是将路由操作和数据操作分开 这样容易维护 可容易调试错误等
router:写路由相关的 就是只管访问分配什么数据,保证数据的格式是正确的,以及接受发过来的信息、数据等
controller :只管处理数据 根据router中的内容发过来的参数处理 把数据返回给router中的内容
所以是router调用controller的关系
原生node创建路由的分层相关推荐
- Node.js 系列:构建原生 Node.js 应用
原生 Node.js 应用 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效 Nod ...
- node创建web静态服务
在上一篇中,用了http模块和fs模块来让html页面呈现出来,但是这样做有缺点,比如我们来看一个例子,例如我现在手上有一个前端写好了的静态文件夹,我想吧它部署在node的静态服务上,你将会发现,如果 ...
- 原生node写一个静态资源服务器
myanywhere 用原生node做一个简易阉割版的anywhere静态资源服务器,以提升对node与http的理解. 相关知识 es6及es7语法 http的相关网络知识 响应头 缓存相关 压缩相 ...
- php udp发送和接收_63、php利用原生socket创建udp服务
1.案例函数汇总 2.案例 通过socket创建udp服务,获取对端的ip和port信息.并进行打印 2.1.udp服务源码 /** * Copyright(C) Iamasb * @project ...
- node.js路由控制
一.工作原理 当通过浏览器访问app.js建立的服务器时,会看到一个简单的页面,实际上它已经完成了许多透明的工作, 当访问http://localhost:3000,浏览器会向服务器发送请求,包括请求 ...
- vue3 创建路由「vue-router 4.x 的使用」
本篇主要讲解 vue-router 4.x 如何使用, vue-router 3.x 的使用可以移步此文 Vue 前端路由.vue-router . 1. 什么是 vue-router vue-rou ...
- node 创建静态web服务器(上)
声明:本文仅用来做学习记录. 本文将使用node创建一个简单的静态web服务器. 准备工作: 首先,准备好一个类似图片中这样的页面 第一步: 创建 http 服务: const http = requ ...
- Vue3(撩课学院)笔记07-vueRouter路由,创建路由,路由重定向,路由跳转,动态路由,路由懒加载,路由嵌套,路由参数穿传递的两种形式,通过事件来跳转路由
1.vueRouter路由的两种模式 哈希模式:以#号分割,前端路由一般用hash模式比较多,可以兼容ie8以上,井号后面不发起请求 历史模式:putstate()和replaceState()方法入 ...
- html页面生成器使用教程,实战 | HTML页面生成器:使用JavaScript和Node创建CLI
上一篇文章:实战 | 从零开始使用JavaScript制作自己的命令行(CLI工具) 中介绍了如何从零开始制作CLI,只是一个简单的示例,今天更进一步,来制作一个实际的程序,生成HTML模板. 在这篇 ...
最新文章
- Java 数据类型转换
- 漫画 | 小公司卧薪尝胆三年,意外拿到美团offer
- 65个免费和高质量的纹理包
- 密码设置Android设备管理
- OpenGL相机控制之二
- [Ray Linn]用Visual Studio 2008开发IE BHO(浏览器帮助对象) 之二
- OpenCV C++ 10 - Invert Images
- 使用pscp从windows电脑拷贝数据到linux遇到的ssh_init错误
- Windows 9信息曝光:统一开发接口、整合Cortana到任务栏
- MATLAB基本用法介绍
- Hexo 入门指南(六) - sitemap、rss 和部署
- 加速ASP.NET Core WEB API应用程序——第1部分
- svn 设置文件可执行权限
- Virtualbox以及VWare在Win10下的不兼容
- Eclipse Community Survey 2012
- 看产品经理怎么用360实现Java垃圾回收!
- 虚拟机VM 安装CoreOS
- 怎样高效利用PPT模板网站找到适合自己的PPT模板
- springboot启动报错@Bean definition illegally overridden by existing bean definition
- 石油化工企业防雷工程和防雷接地应用方案
热门文章
- 三调数据库及DLTB各个字段含义
- 堆栈在DNA计算机中的应用,堆栈和二叉树数据结构在DNA计算机中的设计与实现
- 医院怎样进行计算机安全管理制度,医院信息安全管理制度
- linux中波浪号代表什么_建筑电气施工图纸中BV、ZRBLV和TC、SC符号代表什么?
- 怎么用python画圆柱_python-如何绘制具有非恒定半径的圆柱
- 最详细的YOLOv3论文笔记
- 软考网络管理员学习笔记3之第三章网络体系结构
- python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...
- Python实现感知器的逻辑电路(与门、与非门、或门、异或门)
- c++11中的for简化用法