|
@@ -7,13 +7,18 @@ export class SetLocaleToCtxMiddleware implements IMiddleware<Context, NextFuncti
|
|
|
resolve() {
|
|
|
return async (ctx: Context, next: NextFunction) => {
|
|
|
const cookies = ctx.request.headers.cookie;
|
|
|
- let arr = cookies.split(';');
|
|
|
- arr = arr.filter(f => f.includes('locale='));
|
|
|
- // 没找到locale就默认使用中文
|
|
|
- if (arr.length <= 0) arr = ['locale=zh-cn'];
|
|
|
- const a2 = head(arr).split('=');
|
|
|
- const locale = last(a2);
|
|
|
- ctx.locale = locale;
|
|
|
+ try {
|
|
|
+ let arr = cookies.split(';');
|
|
|
+ arr = arr.filter(f => f.includes('locale='));
|
|
|
+ // 没找到locale就默认使用中文
|
|
|
+ if (arr.length <= 0) arr = ['locale=zh-cn'];
|
|
|
+ const a2 = head(arr).split('=');
|
|
|
+ const locale = last(a2);
|
|
|
+ ctx.locale = locale;
|
|
|
+ } catch (error) {
|
|
|
+ ctx.locale = 'zh-cn';
|
|
|
+ }
|
|
|
+
|
|
|
await next();
|
|
|
};
|
|
|
}
|