expressjs:从父目录发送文件

Sil*_*ter 7 javascript sendfile express

我想使用expressjs的sendfile从脚本文件的父目录发送文件.我试图做的是这样的:

app.get('/', function(req, res){
    res.sendfile('../../index.html');
});
Run Code Online (Sandbox Code Playgroud)

我得到一个禁止的错误,因为很明显,sendfile不信任路径遍历.到目前为止,我一直无法弄清楚如何更改通过sendfile发送的文件的目录.任何提示?

编辑:发帖时我有点累,实际上它很容易.我会把它留在这里以防万一其他人偶然发现这件事.sendfile有一个选项参数,允许你这样做,如下所示:

app.get( '/', function( req, res ){
    res.sendfile('index.html', { root: "../../"});
});
Run Code Online (Sandbox Code Playgroud)

小智 7

你必须提到root作为第二个参数sendfile().

例如:

app.get('/:dir/:file', function(req, res) {
  var dir = req.params.dir,
      file = req.params.file;

  res.sendfile(dir + '/' + file, {'root': '../'});
});
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到更多详细信息:https: //github.com/visionmedia/express/issues/1465