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 打开开发者工具:

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

更多Jerry的原创文章,尽在:“汪子熙”:

Express 工具库中的 Application 对象相关推荐

  1. python requests库 response_Pytest 如何模拟 requests库中的Response对象?

    请问如何在 Pytest 框架中模拟requests库中的Response对象? 涉及到的主体代码如下: def get_address(phone): url = 'http://www.ip138 ...

  2. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  3. Java Web学习总结(40)——JSP中的Application对象和Session对象常用方法详解

    一.applicaton表示一个javax.servlet.ServletContext对象. 他实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直 ...

  4. AutoCAD中的 Application 对象

    Application 对象是 AutoCAD .NET API 对象模型的根对象.通过 Application 对象,用户可以访问主窗口以及任何打开的图形.一旦用户获得了图形,就可以访问图形中的对象 ...

  5. ACE库中ACE_Msg_Log日志对象浅论

    引言 ACE库提供了ACE_Msg_Log类实现较为全面的日志功能.对于该类的基本使用已经有不少文章谈论过.本文对其中几点需要注意的地方进行说明,帮助大家更好地使用该类. 1. 线程安全性       ...

  6. RX库中的IDisposable对象

    IDisposable是.net中的主动资源释放接口,它是在编程过程中经常使用到的一个接口,本文介绍一下微软在Rx.NET中提供的一系列常用的Disposable类,通过它们可以简化我们的程序代码,提 ...

  7. JavaScript 工具库:Cloudgamer JavaScript Library v0.1 发布

    研究了一年多的js,也差不多写一个自己的js库了. 我写这个不算框架,只是一个小型的js工具库,所以我用的名字是Library. 主要集合了我写js时一些常用的方法,并参考了prototype.js, ...

  8. C++11 中STL库中新增内容

    C++ 11一个比较显著的变化是以前boost库中的一些函数被正式标准化合入到STL中了,本文就简单的介绍一下. 引用包装器(Reference Wrapper) 当模板函数参数为泛型类型的时候,无法 ...

  9. Python-EEG工具库MNE中文教程(14)-Epoch对象中的元数据(metadata)

    目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 本案例演示使用Epochs元数据.关于Epochs数据结构:可以查看文章Python-EEG工具库MN ...

最新文章

  1. 编译安装rabbitmq服务端
  2. 每日一皮:当我在处理别人的代码时...
  3. ML之LSOLS:LSOLS算法的简介、论文、算法的改进(最佳子集选择OFSS法、前向逐步回归FSR法)、代码实现等详细攻略
  4. gacutil.exe Path
  5. 如何找到cache-control header是从后台何处设置的
  6. 秒懂 this(带你撸平this)
  7. python开发cms_Wagtail介绍 — 基于Django的Python CMS
  8. [CTF]QWE加密
  9. bitcoin.conf详解
  10. 阿里云国际站如何注册?
  11. was服务器里面jar包_如何在was中解决jar包冲突
  12. OpenCV——绘制等高线
  13. 计算机视觉——三维视觉 I
  14. IIS配置禁用匿名访问
  15. html表格高度自动调整,table表格自适应高度的办法
  16. mysql多字段修改update_docker安装mysql容器进行部署
  17. 7-4 厘米换算英尺英寸 (15分)
  18. 量子计算笔记|可能会涉及一点点高量的量子力学基础(一)
  19. 0606算法竞赛_数学思想
  20. “真实的了解,真挚的关爱” 全国助残日活动

热门文章

  1. SpringBoot JPA不调用save方法,调用set方法就自动修改了数据库值
  2. linux安装python3.6以后报错处理
  3. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 第1章 Python的创建型设计模式...
  4. 《Python入门经典》——导读
  5. 【风马一族_php】NO4_php基础知识
  6. 转载:使用sklearn进行数据挖掘
  7. 查看ecshop广告位对应的广告详细信息
  8. [zz]为 lua 封装 C 对象的生存期管理问题
  9. ACE在AIX环境下编译指南
  10. 采用静态配置文件方式实现AOP