这是我第一次使用Fastify,我在尝试访问Typescript正文中的值时遇到了问题。
有什么想法或建议吗?谢谢!
**更新:**我希望避免使用app.get(...)
等来简化代码
这是我的代码:
App.ts
const buildServer = (options = {}) => {
const app = fastify(options);
app.register(routesApiV1, { prefix: '/api'});
return app;
}
Routes.ts
const routesApiV1: FastifyPluginCallback = (fastify, options, done) => {
fastify.route(userRoute);
done();
}
User.ts
const handler: RouteHandlerMethod = async (req, res) => {
const {
name,
lastName,
dateOfBirth,
addressLine,
zipCode,
city,
country
} = req.body; // Property '...' does not exist on type 'unknown'
...
}
const route: RouteOptions = {
method: 'GET',
url: '/user/:id',
// schema: fastifySchema, Tried but not working
handler,
preValidation,
}
2条答案
按热度按时间8yoxcaq71#
您需要声明类型并键入
RouteHandlerMethod
和RouteOptions
,方法如下:类型
路由处理程序方法
路线选项
vi4fp9gy2#
FastifyRequest
类型是泛型类型。您应该将主体类型传递给它...当您使用
RouteHandlerMethod
时,它默认将request对象键入为FastifyRequest<{ Body: unknown }>
,因此body的类型是未知的