• 【中间件】请求时间中间件


    request-time.js

    module.exports = function(opts) {
        var time = opts.time || 100
        return function(req, res, next) {
            var timer = setTimeout(function() {
                console.log(
                    '33[90m%s %s33[39m 33[91mis taking too long!33[39m'
                    , req.method
                    , req.url
                )
            }, time)
    
            var end = res.end
            res.end = function(chunk, encoding) {
                console.log(chunk + '(chunk)' + encoding + '(encoding)')
                res.end = end
                res.end(chunk + '(chunk)', encoding)
                clearTimeout(timer)
            }
            next()
        }
    }

    sample.js

    var connect = require('connect')
    var time = require('./request-time')
    
    var server = connect.createServer()
    
    /**
     * 日志记录
     */
    server.use(connect.logger('dev'))
    
    server.use(time({time: 500}))
    
    server.use(function(req, res, next) {
        if ('/a' == req.url) {
            res.writeHead(200)
            res.end('Fast!')
        } else {
            next()
        }
    })
    
    server.use(function(req, res, next) {
        if ('/b' == req.url) {
            setTimeout(function() {
                res.writeHead(200)
                res.end('Slow!')
            }, 1000)
        } else {
            next()
        }
    })
    
    server.listen(3000)
  • 相关阅读:
    单页应用 SPA(Sigle Page Aolication)
    初学数据库
    AJAX与跨域
    面向对象
    event、Dom
    HTML DOM Event 对象
    JavaScript RegExp 对象
    UNITY常用插件
    数据分析师
    VBA工作表排序转载
  • 原文地址:https://www.cnblogs.com/jzm17173/p/3439839.html
Copyright © 2020-2023  润新知