NestJS跨域问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NestJS跨域问题相关的知识,希望对你有一定的参考价值。

参考技术A 再用vue开发前端,而使用NestJS作为后端时,在发起请求时会遇到跨域问题,

解决方式很简单,只需在NestJS入口文件main.ts加上一句

表示允许跨域

在 Nestjs 问题中读取对象值

【中文标题】在 Nestjs 问题中读取对象值【英文标题】:Read object value in Nestjs problems 【发布时间】:2021-06-09 12:10:00 【问题描述】:

在 Nestjs 中读取对象时遇到问题

有代码

    @Post()
  @UseInterceptors(
    FileInterceptor('file', 
      storage: diskStorage(
        destination: (req, file, cb) => 
          const userId = req.body.username;
          const usern = req.user;
          console.log(usern);

          const dir = `./public/avatar/$userId`;
          fs.exists(dir, (exist) => 
            if (!exist) 
              return fs.mkdir(dir, (error) => cb(error, dir));
            
            return cb(null, dir);
          );

console.log(usern) 返回


  _id: '6026654c957fe6330a6d54c2',
  status: 'active',
  iat: 1615467122,
  exp: 1615553522

但如果我尝试获取 req.user._id 则会出现错误 错误 TS2339:“用户”类型上不存在属性“_id”。

【问题讨论】:

【参考方案1】:

看起来像 TypeScript 错误,您的 User 类似乎没有 _id 属性。你应该在类中添加属性。

【讨论】:

req.user return _id: '6026654c957fe6330a6d54c2', status: 'active', iat: 1615467122, exp: 1615553522 ,但我无法访问这些字段中的任何一个。例如 req.user.status 也会出错。 问题不在于你的代码表现如何,而在于你的代码编译。 req.user 应该属于 User 类,因此当您询问 req.user._id 时,它会引发错误,因为您的类中不存在该属性。所以改变你的类以允许编译。

以上是关于NestJS跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

如何解决js跨域问题

跨域问题

使用CORS解决跨域问题

求助关于Chrome跨域的问题

跨域怎么解决

记一次uwsgi导致的跨域问题