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. PAT(B) 1021 个位数统计(Java)

    题目链接:1021 个位数统计 (15 point(s)) 代码 /** * Score 15 * Run Time 93ms * @author wowpH * @version 1.0 */ im ...

  2. STM32中断应用总结

    STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生中断,其中中断和异常是等价的. 中断执行流程: 主程序执行过程可以产生中断去执行中断的内容(保护现场),然后在返回继续执行中断. 中断分 ...

  3. Linux系统下如何优雅地关闭Java进程?

    资料出处: http://www.sohu.com/a/329564560_700886 https://www.cnblogs.com/nuccch/p/10903162.html 前言 Linux ...

  4. MySQL 使用tee记录语句和输出日志

    在mysql命令行中,使用tee命令,可以记录语句和输出到指定文件.在debugging时会很有用.每执行一条语句,mysql都会讲执行结果刷新到指定文件.Tee功能只在交互模式生效. mysql&g ...

  5. 配置闪回恢复区开启归档,未配置清理归档脚本,数据库hang住

    问题现象,测试环境执行SQL hang住 enmo:/home/oracle/worksh dg.sh SQL*Plus: Release Production on Mon May :: Copyr ...

  6. C#项目中窗体的ShowDialog()和show()的区别

    ShowDialog()弹出的窗体为模式化窗体: show()弹出的窗体为非模式化窗体: 模式化窗体与非模式化窗体的区别: 模式化窗体会使程序中断,直到关闭窗体: 打开窗体后不能替换到其他窗体: 子窗 ...

  7. java计算接口调用时间

    方法一: LocalDateTime beginTime = LocalDateTime.now(); Long opetime = Duration.between(between,LocalDat ...

  8. php文件包含漏洞 file inclusion vulnerability

    0x00 何为文件包含漏洞 开发人员如果在写类似include "a.php"的代码时,如果将a.php写成了可变的值,那么就可以在上面做文章,举个理想的例子: <? inc ...

  9. LINUX安装Tree软件包

     1.将镜像光盘放入光驱中 查看当前LINUX版本号:cat  /etc/redhat-release 2.挂载镜像文件 mount  /dev/cdrom /mnt mount :挂载设备命令 /d ...

  10. Ubuntu 其他命令

    其他命令 目标 查找文件 find 软链接 ln 打包和压缩 tar 软件安装 apt-get 01. 查找文件 find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件 序号 命令 ...