มิดเดิ้ล
ฉันครึ่งทางผ่านการแยกแนวคิดของมิดเดิลแวร์ในโครงการใหม่ 
Middleware อนุญาตให้คุณกำหนดสแต็กของการกระทำที่คุณควรดำเนินการ เซิร์ฟเวอร์ Express ตัวเองเป็นกองกลาง
// express
var app = express();
// middleware
var stack = middleware();
จากนั้นคุณสามารถเพิ่มเลเยอร์ในมิดเดิลแวร์สแต็กได้โดยการโทร .use
// express
app.use(express.static(..));
// middleware
stack.use(function(data, next) {
  next();
});
ชั้นในมิดเดิลแวร์สแต็คเป็นฟังก์ชั่นซึ่งใช้พารามิเตอร์ n (2 สำหรับด่วนreqและres) และnextฟังก์ชั่น
nextมิดเดิ้ลคาดว่าชั้นจะทำคำนวณบางเพิ่มพารามิเตอร์แล้วโทร
สแต็คไม่ได้ทำอะไรนอกจากคุณจะจัดการมัน Express จะจัดการกับสแต็กทุกครั้งที่มีการร้องขอ HTTP ขาเข้าที่ติดบนเซิร์ฟเวอร์ ด้วยมิดเดิลแวร์คุณจัดการสแต็กด้วยตนเอง
// express, you need to do nothing
// middleware
stack.handle(someData);
ตัวอย่างที่สมบูรณ์ยิ่งขึ้น:
var middleware = require("../src/middleware.js");
var stack = middleware(function(data, next) {
    data.foo = data.data*2;
    next();
}, function(data, next) {
    setTimeout(function() {
        data.async = true;
        next();
    }, 100)
}, function(data) {
    console.log(data);
});
stack.handle({
    "data": 42
})
ในแง่ด่วนคุณเพียงแค่กำหนดสแต็คของการดำเนินการที่คุณต้องการให้ Express จัดการกับคำขอ HTTP ที่เข้ามาทุกครั้ง
ในแง่ของ express (แทนที่จะเชื่อมต่อ) คุณมีมิดเดิลแวร์ระดับโลกและมิดเดิลแวร์เฉพาะเราต์ ซึ่งหมายความว่าคุณสามารถแนบมิดเดิลแวร์สแต็กกับทุกคำขอ HTTP ขาเข้าหรือแนบเฉพาะกับคำขอ HTTP ที่ทำงานกับเส้นทางที่แน่นอน
ตัวอย่างขั้นสูงของ express & middleware:
// middleware 
var stack = middleware(function(req, res, next) {
    users.getAll(function(err, users) {
        if (err) next(err);
        req.users = users;
        next();  
    });
}, function(req, res, next) {
    posts.getAll(function(err, posts) {
        if (err) next(err);
        req.posts = posts;
        next();
    })
}, function(req, res, next) {
    req.posts.forEach(function(post) {
        post.user = req.users[post.userId];
    });
    res.render("blog/posts", {
        "posts": req.posts
    });
});
var app = express.createServer();
app.get("/posts", function(req, res) {
   stack.handle(req, res); 
});
// express
var app = express.createServer();
app.get("/posts", [
    function(req, res, next) {
        users.getAll(function(err, users) {
            if (err) next(err);
            req.users = users;
            next();  
        });
    }, function(req, res, next) {
        posts.getAll(function(err, posts) {
            if (err) next(err);
            req.posts = posts;
            next();
        })
    }, function(req, res, next) {
        req.posts.forEach(function(post) {
            post.user = req.users[post.userId];
        });
        res.render("blog/posts", {
            "posts": req.posts
        });
    }
], function(req, res) {
   stack.handle(req, res); 
});