请教下如何在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回答

Brian

2023-01-15

非常简单,你使用了@Res之后,就需要自己来操作响应的对象了,你就当成一个express的response对象,一个原生的对象,可以使用res.status(200).send(这里要放你要返回给前端的东西)

1
3
Brian
回复
tulies
好的不谢,应该的
2023-02-05
共3条回复

NestJS 入门到实战 前端必学服务端新趋势

近几年快速发展的Node.js框架,掌握未来前端工程师后端开发能力

582 学习 · 243 问题

查看课程