Express 工具库中的 Application 对象

举报
Jerry Wang 发表于 2022/10/02 09:41:29 2022/10/02
【摘要】 var express = require('express')var app = express()app.get('/', function (req, res) { res.send('hello world')})app.listen(3000)上面是一个最简单的 express 应用的例子。Application 对象通常表示 Express 应用程序。通过调用express()...
var express = require('express')
var app = express()

app.get('/', function (req, res) {
  res.send('hello world')
})

app.listen(3000)

上面是一个最简单的 express 应用的例子。Application 对象通常表示 Express 应用程序。通过调用express() 即 Express 模块导出的顶级函数来创建它。

Express 是一个路由和中间件 Web 框架,本质上是一系列中间件函数调用。

中间件函数是可以访问请求对象( req)、响应对象( res) 和应用程序请求-响应循环中的下一个中间件函数的函数。下一个中间件函数通常由名为 next 的变量表示。

中间件功能可以执行以下任务:

  • 执行任何代码。
  • 对请求和响应对象进行更改。
  • 结束请求-响应循环。
  • 调用堆栈中的下一个中间件函数。

如果当前中间件函数没有结束请求-响应循环,它必须调用next() 将控制权传递给下一个中间件函数。否则,请求将被挂起。

Express 应用程序可以使用以下类型的中间件:

  • Application-level middleware
  • Router-level middleware
  • Error-handling middleware
  • Built-in middleware
  • Third-party middleware

将应用层中间件绑定到 app 对象的实例上,绑定通过 app.use 函数调用完成。app.METHOD 是处理 HTTP 请求的方法名,小写,比如 get, post, put 等等。

var express = require('express')
var app = express()

app.use(function (req, res, next) {
  console.log('Time:', Date.now())
  next()
})

上述代码,console.log 在每次接收到 HTTP 请求时都会执行。

下面的代码,console.log 在任意类型的 HTTP 请求到来时都会得到执行。

app.use('/user/:id', function (req, res, next) {
  console.log('Request Type:', req.method)
  next()
})

关于 app.use 的函数参数定义,参考官方文档

利用 StackBlitz 这个在线 IDE,我们可以轻易在浏览器里调试 Node.js 应用。

首先在代码里需要调试的位置,添加 debugger 语句,然后右键菜单的 inspect 打开开发者工具:

点击工具栏的刷新按钮,断点立即触发了:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。