0

我正在尝试为服务器构建一个简单的搜索/浏览服务,我认为使用 express 来熟悉它可能会很有趣。

对于我正在考虑的问题,我有express@3.4.1一个非常简单的app.js

var express = require("express");
var app = express();
//var express = require('express')
//, app = express.createServer();

app.configure(function() {
    var hourMs = 1000*60*60;
    app.use(express.static(__dirname + '/public', { maxAge: hourMs }));
    app.use(express.directory(__dirname + '/public', {hidden: true, icons: true}));
    app.use(express.errorHandler());
});

app.listen(1333);

如何设置/自定义directory中间件生成的 HTML/CSS?

express.directory.html我应该用我的方式覆盖app.js还是有更好/更清洁的方式?

编辑:在查看代码之后,似乎覆盖函数不是要走的路。它使用的文件似乎相当硬编码,我最终可能会复制整个文件以覆盖我想要的文件。那么,有什么想法吗?

4

2 回答 2

1

您可以从 Express 中间件中提取所有相关代码,进行自己的调整,并将其保存为您的应用程序的一部分(作为./lib/middleware/directory.js或其他内容)。

如果您要修改node_modules/目录中的文件,您可以确保在更新时您将丢失任何修改。

可以重写express.directory.html(),但您可能仍会遇到任何更新使其因内部更改而停止工作的问题。

于 2013-10-17T17:59:07.167 回答
0

我相信直接编辑 node_modules/express/node_modules/connect/lib/public/style.css 和 directory.html 将是自定义默认 express 目录 style/html 的最干净的方法。

于 2013-10-17T17:12:34.913 回答