请教下如何在controller中实现动态302跳转或json返回?
来源:8-9 面向切面编程:TypeORM实现用户的CURD操作

tulies
2023-01-08
请教下,如何再controller中实现动态302跳转或json返回?
我的需求是:
- 如果获取到正常的数据,就返回json串
- 如果获取不到数据,就重定向到另外一个页面。
通过我下面的代码,是不行的,加了@Res之后,就只能重定向了,无法通过最后的return方式返回json串了。
import { Controller, Get, Param, Res } from '@nestjs/common';
import { Response } from 'express';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get(':id')
async to(@Param('id') id: string, @Res() res: Response) {
const urlInfo = await this.appService.getUrlInfo(id);
// 获取不到信息重定向到一个url页面上
if (!urlInfo) {
res.redirect('http://www.baidu.com');
}
// 获取到信息就返回json
return urlInfo;
}
}
请教下老师,该如何实现我的问题啊? 谢谢!
写回答
1回答
-
非常简单,你使用了@Res之后,就需要自己来操作响应的对象了,你就当成一个express的response对象,一个原生的对象,可以使用res.status(200).send(这里要放你要返回给前端的东西)
132023-02-05
相似问题