[英]@Get('*') doesn't match empty (NestJS)
在我的 Nest 后端中,我試圖匹配控制器中的 url
@Controller('admin')
export class AdminController {
@Get('*')
getAdminB(@Res() response): void {
response.sendFile(path.resolve('./public/admin/index.html'));
}
}
這應該與以下 URL 匹配:
/admin
/admin/
/admin/anything
但是,上面的 get @Get('*')
與/admin
不匹配。 我應該用@Get()
添加其他路線還是有解決辦法?
我需要這個,因為我必須從/admin
提供一個有角度的應用程序
您可以使用路徑@Get('/?*')
來匹配所有路由。
Nest 使用 util 函數validatePath()
來構建路徑。 當你有一個前綴( admin
你的情況),然后窩總會添加/
從你的路線裝飾前綴和路徑之間,除非第一個字符已經是一個/
。
export const validatePath = (path?: string): string =>
path
? path.charAt(0) !== '/' ? '/' + path : path
: '';
因此,提供給 express 的路徑將是admin/?*
,它匹配以admin
開頭的任何路徑。 小心,這也包括例如adminarea/1
!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.