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. 深度学习-mnist手写体识别

    mnist手写体识别 Mnist数据集可以从官网下载,网址: http://yann.lecun.com/exdb/mnist/ 下载下来的数据集被分成两部分:55000行的训练数据集(mnist.t ...

  2. Layui连接mysql操作CRUD案例

    今天分享的是一个新前端框架Layui,用它来链接数据库实现一下crud的操作. 一:layui简历 layui,是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与 ...

  3. docker部署mysql,nginx,php,并上传镜像到私有仓库

    前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...

  4. mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】

    utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程 ...

  5. 使用github经验

    使用github经验 良好的使用习惯,就像是每天来看朋友圈一样,不一定每天都有东西要提交,但是一定要一直有一个 repository 在维护,持续的提交代码.同时也要注意自己的 repository的 ...

  6. (二十二)SpringBoot之使用Druid连接池以及SQL监控和spring监控

    一.引入maven依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  7. 50道高级sql练习题;大大提高自己的sql能力(附具体的sql)

    问题及描述:--1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表Course(CID ...

  8. linux内核信号量

    用户态的信号量: System V 信号量 Posix 信号量 信号量是用于保护临界区的一种常用方法.它的使用和自旋锁类似.相同的是,只有得到信号量的进程才能执行临界区代码:不同的是,当获取不到信号量 ...

  9. QCamera : no such file 问题

    在项目 *.pro中添加即可. QT += core gui QT += multimedia QT += multimediawidgets QT += multimedia ==>对应< ...

  10. 1.Hbase集群安装配置(一主三从)

     1.HBase安装配置,使用独立zookeeper,shell测试 安装步骤:首先在Master(shizhan2)上安装:前提必须保证hadoop集群和zookeeper集群是可用的 1.上传:用 ...