Skip to content

parseAsync ​

parse 的异步版本:返回数据,或以 ValidationError 拒绝。当 Schema 中包含 checkAsync 时需要使用。

签名 ​

ts
function parseAsync<S extends Schema>(schema: S, value: unknown, options?: Options): Promise<Infer<S>>

参数 ​

参数类型说明
schemaSchema用于校验数据的 Schema
valueunknown任意数据
optionsOptions{ 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 由统一的错误处理函数处理
  }
});

另请参阅 ​