2015-03-31 78 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);