当处理所有承诺和其他东西时,获取请求不返回数据,仍在发送
When handle all promises and other stuff, Get request not returning data, still sending
我正在尝试查询我的数据中的一些数据。但是当我向我的服务器发送获取请求时,它没有返回任何东西。但是当我控制台日志时,我的数据打印在控制台上。我处理所有的承诺和其他事情。但是结果是一样的
控制器方法:-
@Get('order/:state')
async getOrderByStatus(
@Res() response: Response,
@Param('state') state: number,
): Promise<OrderService[]> {
try {
const orderStatus = await this.orderServiceService.getOrderByStatus(
state,
);
if (orderStatus) {
console.log(orderStatus);
return orderStatus;
}
} catch (error) {
console.log(error);
response.status(401).send(error);
}
}
服务方式:-
async getOrderByStatus(state: number): Promise<OrderService[]> {
try {
const orderState = await this.orderModel.find({ orderStatus: state });
if (orderState) {
return orderState;
}
throw new HttpException('Order not found', HttpStatus.NOT_FOUND);
} catch (error) {
console.log(error);
throw error;
}
}
客户端:-(请求数据仍然是 sending.Not 从我的控制器返回数据)
我真的需要你的帮助...谢谢你..❤️
当您将 @Res()
添加到路由处理程序时,您是在告诉 Nest 您想要使用 library-specific approach 并且您将自行处理发送响应。如果你不需要任何底层引擎特定的方法,我建议不要在路由处理程序中使用 @Res()
,如果你确实需要一些方法,但仍然希望 Nest 发送响应,你可以使用 @Res({ passthrough: true })
,只要确保您最终不会自己打电话给 res.send
。
为了处理错误,您可以捕获错误并将其 re-throw 作为 HttpException
,这样 Nest 的 built-in 异常过滤器将为您发送正确的响应代码和消息
我正在尝试查询我的数据中的一些数据。但是当我向我的服务器发送获取请求时,它没有返回任何东西。但是当我控制台日志时,我的数据打印在控制台上。我处理所有的承诺和其他事情。但是结果是一样的
控制器方法:-
@Get('order/:state')
async getOrderByStatus(
@Res() response: Response,
@Param('state') state: number,
): Promise<OrderService[]> {
try {
const orderStatus = await this.orderServiceService.getOrderByStatus(
state,
);
if (orderStatus) {
console.log(orderStatus);
return orderStatus;
}
} catch (error) {
console.log(error);
response.status(401).send(error);
}
}
服务方式:-
async getOrderByStatus(state: number): Promise<OrderService[]> {
try {
const orderState = await this.orderModel.find({ orderStatus: state });
if (orderState) {
return orderState;
}
throw new HttpException('Order not found', HttpStatus.NOT_FOUND);
} catch (error) {
console.log(error);
throw error;
}
}
客户端:-(请求数据仍然是 sending.Not 从我的控制器返回数据)
我真的需要你的帮助...谢谢你..❤️
当您将 @Res()
添加到路由处理程序时,您是在告诉 Nest 您想要使用 library-specific approach 并且您将自行处理发送响应。如果你不需要任何底层引擎特定的方法,我建议不要在路由处理程序中使用 @Res()
,如果你确实需要一些方法,但仍然希望 Nest 发送响应,你可以使用 @Res({ passthrough: true })
,只要确保您最终不会自己打电话给 res.send
。
为了处理错误,您可以捕获错误并将其 re-throw 作为 HttpException
,这样 Nest 的 built-in 异常过滤器将为您发送正确的响应代码和消息