Javascript 使特定目录在Express.js中可浏览

Javascript 使特定目录在Express.js中可浏览,javascript,node.js,express,connect,Javascript,Node.js,Express,Connect,我有一个目录,里面有一些图片,我想在浏览器中查看 此目录位于我的服务器上的/public/images 在/public中,我还有其他不想公开的目录,因此使整个/public目录可见并不是解决方案 如何使用connect目录中间件使我的/public/images可浏览 使用所述的解决方案可以使所有内容都在/公开状态下可见,但尝试以下操作不起作用: app.use(exp.static(__dirname + '/public')); app.use(exp.static(__d

我有一个目录,里面有一些图片,我想在浏览器中查看

此目录位于我的服务器上的/public/images

在/public中,我还有其他不想公开的目录,因此使整个/public目录可见并不是解决方案

如何使用connect目录中间件使我的/public/images可浏览

使用所述的解决方案可以使所有内容都在/公开状态下可见,但尝试以下操作不起作用:

    app.use(exp.static(__dirname + '/public'));
    app.use(exp.static(__dirname + '/public/images'));
    app.use(exp.directory(__dirname + '/public/images'));

谢谢

您必须将路由装载到特殊路径,如

app.use('/', exp.static(__dirname + '/public'));
app.use('/images', exp.static(__dirname + '/public/images'));
app.use('/images',exp.directory(__dirname + '/public/images'));
通过这种方式,您可以使用url/访问/public的内容,使用url/images访问/public/image的内容

npm install serve-index
--


你就是那个男人,这正是我需要的。你的解决方案非常有效,干杯。我尝试了这个,但想让根目录可用,但没有成功。我刚刚添加了一个名为/ndn的文件夹作为/public的同级文件夹,我想在/views的客户机视图文件中使用test.js脚本,其中脚本src指向“/ndn/test.js”-how?@Cody至少与express@3.0.0这就像一个符咒——只允许使用express静态中间件访问根级目录。可能您的代码中有错误?请注意,express^4.X.X不再捆绑使用,因此支持express.directory。您可以使用服务索引。
var serveIndex = require('serve-index');

app.use('/images', express.static(__dirname + '/public/images'), serveIndex(__dirname + '/public/images'));