手机版

node.js express框架的介绍与实现

时间:2021-08-21 来源:互联网 编辑:宝哥软件园 浏览:

前言

之前学过node.js,接触过express框架。最近刚用express写了一个模拟服务器。下面只是简单介绍一下表达。

今天的内容主要集中在以下几个方面。

Express framework介绍了在express framework和app.get/app.post mock服务器中的应用。介绍了mock server的实现思想。一、express framework的初步介绍

关于express框架的介绍,这里我引用一下菜鸟教程:的介绍

Express是一个简单灵活的node.js web框架,它提供了一系列强大的功能来帮助您创建各种web应用程序和丰富的HTTP工具。快递可以快速搭建一个功能齐全的网站。

1.1.express框架的特点

(1)可以设置中间件响应HTTP请求;(2)路由表被定义为执行不同的HTTP请求动作;(3)通过向模板传递参数,可以动态呈现HTML页面;2.安装快速

Npm安装快速-保存或cnpm安装快速-保存以下重要需求,以便与快速框架一起安装:

Body-parser -node.js中间件用于处理JSON、Raw、Text和URL编码的数据;Cookie解析器——这是一个解析cookie的工具。通过req.cookies,你可以得到发送的cookies,并把它们变成对象;Multer-node.js中间件用于处理带有enctype=" multipart/form-data "(set form mime code)的表单数据;安装命令显示在:下面

NPM安装body-parser-save NPM安装cookie-parser-save NPM安装mule-save 3 . express的初学者

node_learning.js的代码如下:

var express=require(' express ');var app=express();app.get('/'),function (req,RES){ RES . send(' Hello World ');}) var server=app.listen (2019,function(){ var host=server . address()。address var port=server.address()。portconsole.log('应用程序示例,访问地址为http://127.0.0.1:2019 ',主机,端口)}) 2。快速框架中的app.use和app.get/app.post

app.use和app.get/app.post的区别是(引用朋友的话):

如果你感兴趣,请参考这个链接:作者做了实验和测试

(app中的回调。use(路径、回调)可以是路由器对象,也可以是函数

(2)app . get中的回调(路径,回调)只能是一个函数

app.use和app.get/app.post的实现几乎是一样的。代码示例如下:

var express=require(' express ');var app=express();函数testuser (req,RES,next) {//req参数可以接受一些请求的参数(req.query/req.body)和请求头信息。//res用于响应信息。//调用next()方法进入下一个中间件res.send('测试用户');}函数testlogin (req,RES,next){ RES . send(' test log in ');} var server=app.listen (2019,function(){ var host=server . address()。address var port=server.address()。portconsole.log('应用程序实例,访问地址为http://127.0.0.1:2019')})//。app.get('/login ',testlog in);以上就是node.js的express框架,最近我需要用它来实现一个插件的功能,这个插件和mock server有很大的关系。

三.模拟服务器介绍

模拟服务器转换为模拟服务。

说到这里,相信大家都很容易理解。为什么要模拟服务?

比如现在的业务系统很少孤立存在,或多或少使用其他公司提供的服务,给我们调试和测试带来很大的麻烦。在这种情况下,常见的解决方案是构建一个模拟服务器,模拟那些服务器,并为调试和测试提供数据。

四、模拟服务器的实现

对于谷歌或者是搜索模拟服务器肯定有很多想法,这里就不重复了。

这里我以我自己最近开发的vscode插件为例。

我最近的工作是设置-同步的二次开发

关于设置-同步插件,请参考我的博客公园设置-同步源代码阅读

如何实现一个模拟服务器来替代github api地址并保证一致的效果?

针对目前的需求,我的实现思路如下:

首先,针对如何实现一个mock服务器,可以重用现有的,比如mock-github-api(本身使用node.js的express框架);二、怎么写,可以按照express框架写网络请求,比如app.get或者app.use第三,为了和githu api保持一致,我需要引入github rest api,比如@ octokit/rest;参考api地址

示例1 : oct kit . repo . listforrg({ org : ' oct kit ',type:' public'})。然后(({data,status,headers })={//handledata//console . log(' status 3360 ' JSON . strip)//console . log(status);console.log(数据);})返回了与octokit相关的api信息(信息太多,我们就简单说一下)示例2 : Const clientwithouth=New Octokit({ auth : ' Token Secret 123 ' })console . log(clientwithouth)//检查详细信息console . log(JSON . stringze(clientwithouth))//输出简要信息如下:返回信息: {'log' : {},' activity ' : { },' apps ' Reactions' : {},' repos' : {},' search' : {},' teams' : {},' users' : {},' gitdata' : {},' authorization' :根据router . JSON(node _ modules \ @ octokit \ rest \ plugins \ rest-API-endpoints \ routes . JSON),这是github rest api在octokit中定义的地方(这个文件定义了所有需要的请求信息),我可以写

用一句简单直接的话来概括,只要接口定义一致,就写一个模拟服务器,通过模仿github rest api来代替github。但是目前有一个问题,我被困在这里了。我们正在努力解决这个问题。

问题是我写代码的时候参考了它对应的rest api文档,但是它返回的信息并不是我想要的,而且是很多无用的函数等等,而不是具体的信息。

但是用5why原则来看这个问题:

为什么github api会返回很多函数?

这些功能是干什么的?Github api不会无缘无故地返回无用的东西

以及为什么console . log(clientwithouth)返回详细信息,而console . log(JSON . stringfy(clientwithouth))返回简短信息?是因为非JSON数据吗?两者都返回JSON数据

我找JSON.stringify()觉得应该是这个原因:

JSON.stringify()方法是将JavaScript值(对象或数组)转换为JSON字符串。如果指定replacer是一个函数,则可以替换该值,或者如果指定replacer是一个数组,则可以选择只包含指定的属性(引用地址)

另外,虽然我们不讨论mock服务器的实现,但是我们应该推荐一个开源的实现框架moco。

Github仓库地址是:https://github.com/dreamhead/moco

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:node.js express框架的介绍与实现是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。