node.js,express.js – 提供单个静态文件最简单的方法是什么?

我已经看到并且使用了:

app.use("/css", express.static(__dirname + '/css')); 

我不希望从根目录提供所有文件,只有一个文件“ipad.htm”。 使用express.js以最less的代码执行此操作的最佳方法是什么?

res.sendFile(path_to_file); 是你所需要的全部; 它会自动设置正确的标题并传输文件(它在内部使用与express.static相同的代码)。

我发布了一个服务于单个静态文件的小型库: https : //www.npmjs.com/package/connect-static-file

npm install connect-static-file

var staticFile = require('connect-static-file'); app.use('/ipad', staticFile(__dirname + '/ipad.html'));

与express.static的主要区别在于它不关心请求url,如果路由匹配,它总是服务于那个文件。 如果您将目录命名为“ipad.html”,它不会突然开始提供整个目录。

 app.use("/css/myfile.css", express.static(__dirname + '/css/myfile.css')); 
  fs.createReadStream(path).pipe(res);