在NodeJS express模块的文档中,示例代码具有app.use(...).
什么是use功能,它在哪儿定义?
我听过很多人最近谈到中间件,但中间件的确切定义是什么?当我查看中间件时,我发现了很多信息和一些定义,但在阅读这些信息和定义时,似乎大多数所有"商品"都处于中间状态.那么,所有东西都是中间件吗?
或者你有一个不是中间件的软件的例子?
我有一个Express 3.0应用程序,我想使用static(),staticCache()以及compress()中间件服务和压缩我的静态文件.这是我目前的app.configure()职能:
app.configure(function() {
app.use(express.favicon(__dirname + '/public/favicon.ico', {maxAge: 86400000}));
app.use(express.bodyParser());
app.use(express.cookieParser('foo'));
app.set('views', __dirname + '/views');
app.engine('.html', mustache({cache: true}).render);
app.use(express.session({ store: sessionStore, secret: 'foo'}));
app.use(express.staticCache());
app.use(express.static(__dirname + '/public', {maxAge: 86400000}));
app.use(express.compress());
});
// routes are loaded here
Run Code Online (Sandbox Code Playgroud)
使用此配置,YSlow报告我的.css和.js文件未压缩,如果不清除浏览器并多次刷新页面,我无法获得缓存命中.我还尝试在staticCache中间件中输入一个调试语句来报告缓存命中并运行ab -n 10000 -c 500显示0缓存命中.
显然我做错了(我猜测订单或选项搞砸了)但我无法弄清楚它是什么.有没有人有这三个中间件正常工作的工作示例?
var express = require('express');
var app = express();
port = process.argv[2] || 8000;
app.configure(function () {
app.use(
"/",
express.static(__dirname)
);
});
app.listen(port);
Run Code Online (Sandbox Code Playgroud)
我删除了下面的这一行,并在加载localhost时出错
app.configure(function () {
app.use(
"/",
express.static(__dirname)
);
});
Run Code Online (Sandbox Code Playgroud)