javascript - app.use() 在 express/connect 中的使用

标签 javascript node.js express connect

我在 express 网站上看到示例代码:

var express = require('express');
var app = express();

// simple logger
app.use(function(req, res, next){
  console.log('%s %s', req.method, req.url);
  next();
});

// respond
app.use(function(req, res, next){
  res.send('Hello World');
});

app.listen(3000);

此处 app.use() 调用了具有完全相同签名的函数,但能够按顺序运行它们。这是如何在 javascript 中完成的?

这里是 app.use() 的定义:https://github.com/senchalabs/connect/blob/master/lib/proto.js

最佳答案

Connect 保留中间件和路由处理程序的“堆栈”(数组)。当请求被处理时,它只是按顺序遍历堆栈中的所有处理函数,并(根据某些路由匹配规则)调用处理函数。

this.stack.push({ route: route, handle: fn });

关于javascript - app.use() 在 express/connect 中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17051005/

相关文章:

javascript - 通过 MongoDB 文档中的 ID 获取嵌套对象

javascript - 将 Chartist.JS 放入 Jade 中

javascript - 如何将 id IS NOT NULL 与转义变量 ??/?

JavaScript 正则表达式 : Get everything from inside/tags

Opera 浏览器启用了 JavaScript,但 portail azure 不起作用

javascript比较两个日期并发出警报

node.js - 使用 pg-promise 的连接池

javascript - axios.post 未从服务器返回数据 : "Cannot destructure property ' data' of '(intermediate value)' as it is undefined"

javascript - 类属性未更新 [node.js - express ]

javascript - 如何模糊地检查字符串中的子字符串?