0

简而言之,我可以像这样拥有一个带有目录索引页面的静态服务器:

app.configure(function() {
    app.use('/mystuff', _express.static(__dirname + "/whatever/stuff"));
    app.use('/mystuff', _express.directory(__dirname + "/whatever/stuff"));
});

我想修改目录索引页面,给他们不同的css,添加一些javascript,也许改变html。如果可能的话,我更喜欢使用尽可能多的现有功能,但如果用我自己的代码替换整个目录中间件很容易,那是一个选择。不知道从哪里开始。当然,我不想实际编辑 express 或 connect 模块中的代码。

顺便说一句,这样做的一个原因是解决我在这里提到的一个错误:如何在 Express 中设置具有任意起始路径的静态服务?

4

1 回答 1

1

正如您在评论中所说,该express.directory功能来自Connect 中间件;但是,似乎没有办法设置自定义文件。

作为替代解决方案,您可以 fork Connect,更改文件(位于lib/public/directory.htmllib/public/style.css),使用您的 fork 作为依赖项,然后执行以下操作:

var connect = require('connect');

app.configure(function() {
    app.use('/mystuff', connect.static(__dirname + "/whatever/stuff"));
    app.use('/mystuff', connect.directory(__dirname + "/whatever/stuff"));
});

而不是快递。我刚刚测试了这个(通过编辑 node_module 中的文件),它工作正常。

编辑: 实际上,您可能只是directory.js从连接中获取并修改它并将其放入您的应用程序和require()它,然后使用您的。我没有对此进行测试,但我不明白为什么它不起作用。

于 2012-11-01T19:54:41.433 回答