温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在node.js中实现express框架

发布时间:2021-06-02 17:31:45 来源:亿速云 阅读:218 作者:Leah 栏目:web开发

如何在node.js中实现express框架?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一、express框架初步介绍

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

Express是一个简洁而灵活的node.js web框架,提供了一系列强大特性帮助你创建各种web应用,和丰富的HTTP工具。使用Express可以快速地搭建一个完整功能的网站。

1.express框架的特性

  • (1)可以设置中间件来响应HTTP请求;

  • (2)定义了路由表用于执行不同大的HTTP请求动作;

  • (3)可以通过向模板传递参数来动态渲染HTML页面;

2.安装express

npm install express --save或cnpm install express --save

以下几个重要需要与express框架一起安装:

  • body-parser -node.js中间件,用于处理JSON,Raw,Text和URL编码的数据;

  • cookie-parser -这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并将它们转为对象;

  • multer - node.js中间件,用于处理enctype=“multipart/form-data”(设置表单mime编码)的表单数据;

安装命令如下所示:

npm install body-parser --save
npm install cookie-parser --save
npm install multer --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().port

 console.log("应用实例,访问地址为 http://127.0.0.1:2019", host, port)

})

二、express框架中的app.use和app.get/app.post

app.use和app.get/app.post其实区别如(引用一位朋友说的):

感兴趣的可以参考这个链接:作者做了试验测试过的

(1)app.use(path,callback)中的callback既可以是router对象又可以是函数

(2)app.get(path,callback)中的callback只能是函数

app.use和app.get/app.post实现几乎大同小异,代码示例如下:

var express = require('express');
var app = express();
function testUser(req, res, next){
 // req 参数可以接受一些请求的参数(req.query/req.body) 和 请求头信息
 // res 用于响应信息
 // 调用next()方法则进入下一个中间件
 res.send("测试用户");
}

function testLogin(req,res,next){
 res.send("测试登录");
}

var server = app.listen(2019, function () {
 var host = server.address().address
 var port = server.address().port
 console.log("应用实例,访问地址为 http://127.0.0.1:2019")
})

//路径匹配

app.use('/user',testUser);
app.get('/login',testLogin);

关于node.js的express框架就介绍这么多,最近本人因实现某个插件的功能而需要用到的,这与下面说的mock server有比较大的关系。

三、mock server 介绍

mock server 翻译过来的意思是模拟服务。

说到这我相信大家就很容易理解了。至于为什么要模拟服务?

比方说现今的业务系统很少有孤立存在的,它们或多或少使用其他公司提供的服务,这给我们联调和测试造成了比较大的麻烦,对于这种情况,常见的解决方案就是搭建一个mock server,模拟那些服务器,提供数据进行联调和测试

如何在node.js中实现express框架

四、mock server的实现思路

现在google或者being搜索mock server 实现思路肯定有很多,这里我就不再赘述。

这里我以我自己最近的vscode插件开发来说。

我最近的工作是针对Settings-Sync作二次开发

关于settings-sync插件,感兴趣的可以参考我的博客园Settings-Sync源码阅读

如何实现一个mock server 替换github api地址并确保效果一致?

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

  • 第一,针对如何实现一个mock server ,可以复用已有,如mock-github-api(其本身是使用node.js的express框架);

  • 第二,如何编写,可以按照express框架编写网络请求的方法,如app.get或app.use等;

  • 第三,为了保持与githu api一致,我需要引入github rest api,如@octokit/rest;

参考api地址

示例一:
  octokit.repos.listForOrg({
  org: 'octokit',
  type: 'public'
 }).then(({ data, status, headers }) => {
  // handle data
  //console.log("status:"+JSON.stringify(headers));
  //console.log(status);
  console.log(data);
 })
 返回的octokit相关的api信息(信息太多了,就先简略)
示例二:
 const clientWithAuth = new Octokit({
 auth: 'token secret123'
 })
 console.log(clientWithAuth)//查看详细信息
 console.log(JSON.stringify(clientWithAuth))//输出简要信息如下
 所示:
 返回的信息:
 {"log":{},"activity":{},"apps":{},"checks":{},"codesOfConduct":{},"emojis":{},
 "gists":{},"git":{},"gitignore":{},"interactions":{},"issues":{},"licenses":{},
 "markdown":{},"meta":{},"migrations":{},"oauthAuthorizations":{},"orgs":{},
 "projects":{},"pulls":{},"rateLimit":{},"reactions":{},"repos":{},"search":{},
 "teams":{},"users":{},"gitdata":{},"authorization":{},"pullRequests":{}
 }

看完上述内容,你们掌握如何在node.js中实现express框架的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI