@ directus/ errors (帮助)
用于帮助创建和检查Directus出错的功能.
安装
pnpm add @directus/errors
使用量
创建新错误类
createError(code: string, message: string | (T) => string, status = 500): DirectusErrorConstructor<T>
import { createError } from '@directus/errors';
const ForbiddenError = createError('FORBIDDEN', "You don't have permissions to see this.", 403);
throw new ForbiddenError();
您可以为错误类别配置额外的扩展名, 该扩展名应当发送给终端用户 :
import { createError } from '@directus/errors';
interface ForbiddenErrorExtensions {
collection: string;
field: string;
}
const ForbiddenError = createError<ForbiddenErrorExtensions>(
'FORBIDDEN',
"You don't have permissions to see this.",
403,
);
throw new ForbiddenError({
collection: 'articles',
field: 'title',
});
然后也可以使用这些扩展生成出错误消息 :
import { createError } from '@directus/errors';
interface ForbiddenErrorExtensions {
collection: string;
field: string;
}
const messageConstructor = (extensions: ForbiddenErrorExtensions) =>
`You don't have permissions to see "${extensions.field}" in "${extensions.collection}".`;
const ForbiddenError = createError<ForbiddenErrorExtensions>('FORBIDDEN', messageConstructor, 403);
throw new ForbiddenError({
collection: 'articles',
field: 'title',
});
检查给定的参数是否为有效的 DirectusError 实例
import { isDirectusError, createError } from '@directus/errors';
const ForbiddenError = createError('FORBIDDEN', "You don't have permissions to see this.", 403);
isDirectusError(new ForbiddenError()); // true
isDirectusError(new Error()); // false