在 Nestjs 问题中读取对象值
Posted
技术标签:
【中文标题】在 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 问题中读取对象值的主要内容,如果未能解决你的问题,请参考以下文章
NestJs:无法读取模块文件中的环境变量但能够读取服务文件?
NestJS:无法读取未定义的属性“'createObjectLiteralExpression'”