2015-03-31 83 views
8

这里请求的文件是我的代码如何记录通过express.static

var express=require("express"); 
var app=express(); 
var port=8181; 
app.use(express.static(__dirname)); 
app.listen(port); 

它提供静态文件正确

我想,当被请求具有扩展的.xls文件被

登录

我该如何实现它?

回答

9

path核心模块为您提供了处理这个问题的工具。所以,只要把这个逻辑在中间件你的静态中间件之前,如:

var express = require("express"); 
var path = require("path"); 

var app = express(); 
var port = 8181; 

app.use(function (req, res, next) { 
    var filename = path.basename(req.url); 
    var extension = path.extname(filename); 
    if (extension === '.css') 
     console.log("The file " + filename + " was requested."); 
    next(); 
}); 
app.use(express.static(__dirname)); 

app.listen(port); 
+0

@ahhmar注意,为了事宜,如果你把静态中间件记录器中间件之上,则会发送回复并且不会调用记录器 – Plato 2015-03-31 15:10:42

+0

是的,好点@Plato。更新了答案。 – 2015-03-31 15:14:35

1

只是做

var express=require("express"); 
var app=express(); 
var port=8181; 

app.use(function(req, res, next) { 
    // check for .xls extension 
    console.log(req.originalUrl); 
    next(); 
}, express.static(__dirname)); 

app.listen(port);