当前位置:网站首页>nodeJs--encapsulate routing
nodeJs--encapsulate routing
2022-08-05 02:18:00 【H5_ljy】
Article table of contents
I. What is routing
Routing: Refers to different URLs to execute different branches or programs
Second, encapsulating routing
Requirements: Enter the URL at the front end and return the corresponding data at the back end. First enter the URL and then go to the statically hosted folder to find it; if not, go to our data interface, and if not, pass a string such as "404 not found".
**Static hosting:** When the user enters the URL, we can use the middleware in the backend to add a folder at the beginning of the pathname to read in the url of readFile, which is achieved, the user can only accessfiles in that folder.
For example:
var url=require("url")var http=require("http")var fs=require("fs")http.createServer((req,res)=>{let pathname=url.parse(req.url).pathnamefs.readFile(__dirname+'/public'+path,(err,data)=>{ // '/public' is the folder we want to hostres.end(data)}}).listen(8080)Design idea: According to the needs, the MVC programming idea is used to design.
What is MVC
V stands for View View refers to the interface that the user sees and interacts with.For example, a web interface composed of html elements, or a client interface of a software.One of the benefits of MVC is that it can handle many different views for an application.No real processing happens in the view, it's just a way to output data and allow the user to manipulate it.
M stands for model model, which means that the model represents business rules.Of the three components of MVC, the model has the most processing tasks.The data returned by the model is neutral, and the model has nothing to do with the data format. Such a model can provide data for multiple views. Since the code applied to the model only needs to be written once and can be reused by multiple views, code duplication is reducedsex.
C is the controller controller means that the controller accepts the user's input and calls the model and view to complete the user's needs. The controller itself does not output anything or do any processing.It just receives the request and decides which model component to call to handle the request, and then decides which view to use to display the returned data.
Simply put: M refers to the business model, V refers to the user interface, and C refers to the controller. The purpose of using MVC is to separate the implementation codes of M and V, so that the same program can use different expressions.
Route source code:
Business Model:
var obj={}var fs=require("fs")var url=require("url")var mime=require("mime")var controller=require("./controller.js")var router=function(req,res){let pathname=url.parse(req.url).pathnamelet type=mime.getType(pathname)fs.readFile(router.basename+pathname,(err,data)=>{if(!err){res.setHeader("content-Type",type)res.end(data)}else{if(obj[pathname]){obj[pathname](req,res)}else{res.end("404 not found")}}})}router.basename=__dirname+'/src'router.stacte=function(path){this.basename=path}router.get=function(path,callback){obj[path]=callback}module.exports=routerController:
module.exports={ajax1(req,res){var obj={name:'ljy',age:22}var str=JSON.stringify(obj)res.setHeader("content-Type","text/json;charts-utf8")res.end(str)}//Write the data returned by the business function to the front end here}view interface
var http=require("http")var router=require("./router.js")var constroller=require("./controller.js")http.createServer(router).listen(8081) //Set the server, followed by the port number for setting the listeningrouter.get("/ajax1",constroller.ajax1) //Add data interface, you need to configure the business function of the controllerrouter.stacte(__dirname+'/src') //Set static hosting files
边栏推荐
猜你喜欢

继承关系下构造方法的访问特点

刷爆朋友圈,Alibaba出品亿级并发设计速成笔记太香了

DAY23: Command Execution & Code Execution Vulnerability

没有对象的程序员如何过七夕

MySQL3

Matlab map with color representation module value size arrow

记录谷歌gn编译时碰到的一个错误“I could not find a “.gn“ file ...”

使用SuperMap iDesktopX数据迁移工具迁移地图文档和符号
![01 [Foreword Basic Use Core Concepts]](/img/90/67537d5fad28d68766ca85b887839e.png)
01 [Foreword Basic Use Core Concepts]

iNFTnews | 对体育行业和球迷来说,NFT可以带来什么?
随机推荐
SuperMap支持的国产环境汇总
Unleashing the engine of technological innovation, Intel joins hands with ecological partners to promote the vigorous development of smart retail
MySQL learning
STM32使用stm32cubemx LL库系列教程
The difference between a process in user mode and kernel mode [exclusive analysis]
如何模拟后台API调用场景,很细!
树表的查找
【OpenCV 图像处理2】:OpenCV 基础知识
网络安全与元宇宙:找出薄弱环节
Quickly learn chess from zero to one
ARM Mailbox
Transfer Learning - Joint Geometrical and Statistical Alignment for Visual Domain Adaptation
How to simply implement the quantization and compression of the model based on the OpenVINO POT tool
【C语言】详解栈和队列(定义、销毁、数据的操作)
汇编语言之源程序
DAY23: Command Execution & Code Execution Vulnerability
Amazon Cloud Technology joins hands with Thundersoft to build an AIoT platform for industry customers
.Net C# Console Create a window using Win32 API
Understand the recommendation system in one article: Recall 06: Two-tower model - model structure, training method, the recall model is a late fusion feature, and the sorting model is an early fusion
线性表的查找