我正在编写一个 API,我想在 POST 正文中检查所需的参数。也可以有可选参数。例如:
// user_create.ts
type User = {
name: string;
age?: number;
}
在 ExpressPOST /User/create实现中,我想检查主体是否包含在MOST(即,对于不在定义中的属性将引发错误):
// POST body
{
User: {
name: "John"
age: 40
}
}
API 将与前端代码共享这些定义。
我的问题是 Node 是否有办法在运行时解析该类型定义,这样我就不必手动检查所有必填字段并阻止不应该成为正文一部分的字段。
就像是:
// api.ts (pseudocode)
router.post('/user/create', (res, req) => {
const typescriptDefs = parseTypescript('user_create.ts');
if(!req.body.matches(typescriptDefs)) {
res.send('Invalid fields');
}
});