parseAsync
parse 的异步版本:返回数据,或以 ValidationError 拒绝。当 Schema 中包含 checkAsync 时需要使用。
签名
ts
function parseAsync<S extends Schema>(schema: S, value: unknown, options?: Options): Promise<Infer<S>>参数
| 参数 | 类型 | 说明 |
|---|---|---|
schema | Schema | 用于校验数据的 Schema |
value | unknown | 任意数据 |
options | Options | { all?: boolean } —— 与 validate 相同 |
返回值
包含清洗后数据的 Promise。检查的执行顺序与 validateAsync 相同。
示例
带数据库检查的处理函数
ts
app.post('/signup', async (req, res, next) => {
try {
const data = await parseAsync(Signup, req.body);
await db.users.create(data);
res.status(201).end();
} catch (e) {
next(e); // ValidationError 由统一的错误处理函数处理
}
});