MongoController提供服务函数来提供查询结果(作为Cursor)。我只是想做一些不同于让服务返回NotFound的东西,比如发送一些其他默认文件。 我想知道是否可以使用模式匹配来检查结果。签名是这样的:
/** Returns a future Result that serves the first matched file, or NotFound. */
def serve[T <: ReadFile[_ <: BSONValue], Structure, Reader[_], Writer[_]](gfs: GridFS[Structure, Reader, Writer], foundFile: Cursor[T], dispositionMode: String = CONTENT_DISPOSITION_ATTACHMENT)(implicit ec: ExecutionContext): Future[SimpleResult] = {
答案 0 :(得分:1)
在您的动作功能中,您可以:
serve(...).flatMap(serveSuccess => aCustomFutureRes).recoverWith { case error => aFutureResOnFailure }
答案 1 :(得分:0)
最后,找到了这个解决方案:
serve(
gridFS,
gridFS.find(query),
CONTENT_DISPOSITION_INLINE)
.flatMap{ result =>
result match {
case NotFound => // Handle file not found
case _ => Future.successful(result)
}
}