akka http Route orElse

时间:2019-09-05 17:54:12

标签: akka-http

对于akka http,我使用getFromDirectory()从目录中提供文件。 我该怎么说呢,如果在目录中找不到请求的文件,请转到另一个目录?

类似这样的东西:

lazy val userRoutes: Route = 
  pathPrefix("files") {
    getFromDirectory("./static")
    .orElse(getFromDirectory(".generated1"))  // this orElse function does not exist. how to achive something like this?
    .orElse(getFromDirectory(".generated2"))  // this orElse function does }

1 个答案:

答案 0 :(得分:0)

你可以有这样的东西

<article class="best_places_of_town_category">
    <div>div is here</div>
    <p>p tag is here</p>
    <img />
</article>

<script>
var imgExists = 0;
$('.best_places_of_town_category').children().each(function () {
    console.log('DOM Element: ' + this);
    if (this instanceof HTMLImageElement)
    {
        imgExists = 1;
    }
});
if (imgExists)
{
    console.log('Image exists within <article>');
}
else
{
    console.log('Image does not exist within <article>');
    $('.best_places_of_town_category').hide();
}
</script>

此处,它构成了所有文件夹的路由,并且由于找不到文件时使用 val route = pathPrefix("prefix") { List("/tmp", "/home/john", "/home/john/Downloads/").map(getFromDirectory).reduceLeft(_ ~ _) } ,因此它将回退到下一个路由

您可以在reject的实现中找到reduceLeft的这种用法