当前位置:网站首页>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
边栏推荐
- LeetCode uses the minimum cost to climb the stairs----dp problem
- 力扣-相同的树
- Intel XDC 2022 Wonderful Review: Build an Open Ecosystem and Unleash the Potential of "Infrastructure"
- source program in assembly language
- 【PyQT5 绑定函数的传参】
- Transfer Learning - Distant Domain Transfer Learning
- 优化Feed流遭遇拦路虎,是谁帮百度打破了“内存墙”?
- Advanced Numbers_Review_Chapter 1: Functions, Limits, Continuity
- C language diary 9 3 kinds of statements of if
- Unleashing the engine of technological innovation, Intel joins hands with ecological partners to promote the vigorous development of smart retail
猜你喜欢

Live preview | 30 minutes started quickly!Look at credible distributed AI chain oar architectural design

2022 EdgeX中国挑战赛8月3日即将盛大开幕

ExcelPatternTool: Excel table-database mutual import tool

2022了你还不会『低代码』?数据科学也能玩转Low-Code啦!

Quickly learn chess from zero to one

LeetCode uses the minimum cost to climb the stairs----dp problem

.Net C# Console Create a window using Win32 API

MySQL学习
![[Endnote] Word inserts a custom form of Endnote document format](/img/70/e8a6f15b80e9c53db369fd715e51df.png)
[Endnote] Word inserts a custom form of Endnote document format

sql语句多字段多个值如何进行排序
随机推荐
The difference between a process in user mode and kernel mode [exclusive analysis]
C language basics -- pointers
释放技术创新引擎,英特尔携手生态合作伙伴推动智慧零售蓬勃发展
02 【开发服务器 资源模块】
Short domain name bypass and xss related knowledge
Domain Driven Design - MDD
迁移学习——Distant Domain Transfer Learning
PHP技能评测
领域驱动设计——MDD
fragment可见性判断
SuperMap iDesktop.Net之布尔运算求交——修复含拓扑错误复杂模型
【解密】OpenSea免费创造的NFT都没上链竟能出现在我的钱包里?
转:查尔斯·汉迪:你是谁,比你做什么更重要
C语言基础知识 -- 指针
编译预处理等细节
2022 EdgeX中国挑战赛8月3日即将盛大开幕
CPDA|运营人如何从负基础学会数据分析(SQL)
LPQ (local phase quantization) study notes
Utilities SuperMap支持的国产环境汇总