在LoopBack中提供静态文件和目录列表

时间:2017-01-01 02:35:06

标签: node.js loopbackjs strongloop

LoopBack tutorial之后,如果目录没有index.html或类似名称,我想修改它以提供目录列表。

我之前在Express中使用过:

var express = require('express');
var serveIndex = require('serve-index');
var app = express.express();
app.use('/', serveIndex(__dirname + '/public', {}));
app.use('/', express.static('public'));

我可以修改middleware.json来执行此操作吗?或者,我怎么能在LoopBack JS启动脚本中执行此操作?

我已尝试将以下内容放在引导目录中的文件routes.js中:

module.exports = function(app)
{
    var serveIndex = require('serve-index');
    app.use('/', serveIndex(__dirname + '../client', {}));
    app.use('/', app.static('../client'));
};

但它显然不一样,因为第一个例子中的app.static()不是与use()在同一个对象上的方法 - 即第二个例子产生错误:

  

TypeError:app.static不是函数

(路径也不对,但我一次只处理一个问题)

1 个答案:

答案 0 :(得分:1)

这很简单。虽然我找不到通过loopback app对象访问express模块​​的方法,但它可能只是require() d。

使用以下内容创建文件./server/boot/routes.js

module.exports = function(app)
{
    var express = require('express');
    var serveIndex = require('serve-index');

    var croot = __dirname+'/../../client';
    app.use('/', express.static(croot));
    app.use('/', serveIndex(croot, {'icons': true}));
}