Express 4在app.use路由中定义新路由

时间:2018-01-16 08:45:44

标签: javascript node.js express

我有一个快速nodejs应用程序,我正试图在另一条路线中使用“动态路线”。

我有:

....
app.use('/test/:id',
   function(req,res,next) {         
     app.use('/foo', static(path.join(__dirname, 'photos/'+req.params.id)));
     res.redirect('/foo/img1.jpg');
   }
);

即使文件存在于目录中,res.redirect也会返回“Not found”。

我需要这个以动态的方式从具有照片相册子目录的目录中提供静态图像照片文件,因此我可以上传新的子目录而无需重写快递中的路线。

顺便说一下,我正在使用https://github.com/timmydoza/express-photo-gallery,我正在尝试根据自己的需要对其进行修改。

谢谢

已更新

我忘了,如果我在app.use('/foo'....之外提取app.use('/test/:id'...,则会找到该图片。

1 个答案:

答案 0 :(得分:0)

我认为你应该使用:

  express.static( path.join( __dirname, 'photos/' + req.params.id ))
  ^^^^^^^

而不是:

 static( path.join( __dirname, 'photos/' + req.params.id ))

不要忘记导入path模块:

 const path = require("path");

请记住,应在

之前创建所有路径photos/{id}