learning  express  middleware

var express = require('express');
var app = express();
var log =
var myLogger = function (req, res, next) {
log++;
console.log('var log =', log);
next();
}; app.use(myLogger); app.get('/', function(req, res){
res.send("hello world");
}); app.listen();

result:

C:\Users\admin\WebstormProjects\learning-express-step5>node learning-express-step5.js
var log =
var log =
var log =
var log =

request time log:

var express = require('express');
var app = express();
var log =
var myLogger = function (req, res, next) {
log++;
console.log('var log =', log);
next();
}; var requestTime = function(req, res, next){
req.requestTime = Date.now();
next();
} app.use(myLogger);
app.use(requestTime); app.get('/', function(req, res){
//res.send("hello world");
var responseText = 'hello world!<br>';
responseText +='<small>Requested at: ' + req.requestTime + '</small>'
res.send(responseText);
});

result:

write middleware

var express = require('express');
var app = express();
var mw = require('./my-middleware'); var log = 0;
var myLogger = function (req, res, next) {
log++;
console.log('var log =', log);
next();
}; var requestTime = function(req, res, next){
req.requestTime = Date.now();
next();
} app.use(myLogger);
app.use(requestTime);
app.use(mw({option1:'1',option2:'2'})); app.get('/', function(req, res){
//res.send("hello world");
var responseText = 'hello world!<br>';
responseText +='<small>Requested at: ' + req.requestTime + '</small>'
res.send(responseText);
}); app.listen(3000);

  my-middleware.js  each request print log option1 and option2

module.exports = function (options) {
return function (req, res, next) {
console.log(options.option1);
console.log(options.option2);
next()
}

result:

C:\Users\admin\WebstormProjects\learning-express-step5>node learning-express-step5.js
var log = var log = var log =

learning express step(五)的更多相关文章

  1. learning express step(十四)

    learning express error handle code: const express = require('express'); const app = express(); const ...

  2. learning express step(十三)

    learning express error handle code: const express = require('express'); const app = express(); app.g ...

  3. learning express step(十二)

    learning express view engine function const express = require('express'); const app = express(); app ...

  4. learning express step(十一)

    learning express.Router() code: const express = require('express'); const app = express(); var route ...

  5. learning express step(四)

    learning express route function const express = require('express'); const app = express(); app.get(' ...

  6. learning express step(九)

    router-level middleware works in the same way as application-level middleware, except it is bound to ...

  7. learning express step(八)

    To skip the rest of the middleware functions from a router middleware stack, call next('route') to p ...

  8. learning express step(七)

    Route handlers enable you to define multiple routes for a path. The example below defines two routes ...

  9. learning express step(六)

    code: use application middleware var express = require('express'); var app = express(); app.use(func ...

随机推荐

  1. 1261: 单位转换(Java)

    WUSTOJ 1261: 单位转换 参考资料 数字字符串拆分--百度知道 Description BobLee最近在复习考研,在复习计算机组成原理的时候,遇到了一个问题.就是在计算机存储里面的单位转换 ...

  2. diy操作系统 0:万事开头难

          许久之前就有写一个tiny的操作系统的打算,但时间和精力关系,想法一直没有成为最终的代码.操作系统的构建本身是个系统工程,门槛较高,需要多方面的知识,往往几行代码背后是厚厚的几本书才能说清 ...

  3. java中针对 try和finally一些总结

    结论 1.不管有没有异常,finally中的代码都会执行 2.当try.catch中有return时,finally中的代码依然会继续执行 3.finally是在return后面的表达式运算之后执行的 ...

  4. C# LoadXml System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.

    去掉BOM头 writer = new XmlTextWriter(stream, new UnicodeEncoding(false,false)); 如果是UTF8 writer = new Xm ...

  5. nodejs连接mysql数据库,报错Client does not support authentication protocol requested by server的解决方法

    最近想要尝试nodejs连接本地数据库,往全栈方向做一个小小的尝试,于是下载了一个 MySQL8.0,发现Navicat连接不上,结果就下载了mysql自身的Workbench,继续使用. 然而,难受 ...

  6. Navicat MySql 连不上 本地开发环境 MySQL8.0

    原因:   新版mysql数据库的加密方式改变,进而导致Navicat连接输入的密码不能与安装时输入的密码匹配,那如何解决这个问题呢?很简单,只需要一句代码的事儿~ 1.打开MySQL 8.0 Com ...

  7. stm32 定时器 通用定时器

    STM32F10xxx 2个基本定时器(TIM6.TIM7) 4个通用定时器(TIM2. TIM3. TIM4和TIM5) 2个高级定时器(TIM1.TIM8) 每个定时器都是完全独立的,没有互相共享 ...

  8. C++ unordered_map桶增长规律

    无序容器unordered_map存储为一组桶,各元素通过hash函数映射到各个桶中.心血来潮,来看一下桶的增长规律. #include <iostream> #include <s ...

  9. 有选择性的启用SAP UI5调试版本的源代码

    在低版本的SAP UI5应用中,我们一旦切换成调试模式,那么应用程序源代码和UI5框架程序的源代码的调试版本都会重新加载,耗时很长. 我最近发现UI5新版本1.66.1提供了选择性加载调试版本的源代码 ...

  10. Java基础加强-反射机制

    反射的基石 -> Class 类(字节码)/*只要是在源程序中出现的类型,都要各自的Class实例对象,例如:int,int[],void*/如何得到各个字节码对应的实例对象(Class类型) ...