javascript - NestJS无法读取未定义的属性“原型”
问题描述
我试图找出 NestJS 并且数组中有错误。请告诉我如何解决它?我试图弄清楚并意识到错误出现在“优势:TopPageAdvantage [];”中。出于某种原因,他不想添加数组。如果没有数组,一切都会正常工作。
package.json 中的版本:
"@typegoose/typegoose": "^8.2.0",
"mongoose": "^6.0.3",
Docker 中的版本:image: mongo:4.4.4
.
[Nest] 16224 - 31.08.2021, 22:31:41 ERROR [ExceptionHandler] Cannot read property 'prototype' of undefined
TypeError: Cannot read property 'prototype' of undefined
at mapOptions (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\internal\utils.ts:460:50)
at Object.mapArrayOptions (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\internal\utils.ts:389:18)
at Object.processProp (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\internal\processProp.ts:469:18)
at Object._buildSchema (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\internal\schema.ts:59:7)
at buildSchema (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\typegoose.ts:140:9)
at Object.getModelForClass (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@typegoose\typegoose\src\typegoose.ts:77:58)
at InstanceWrapper.modelFactory [as metatype] (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\nestjs-typegoose\dist\typegoose.providers.js:22:58)
at Injector.instantiateClass (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@nestjs\core\injector\injector.js:294:55)
at callback (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@nestjs\core\injector\injector.js:43:41)
at Injector.resolveConstructorParams (E:\Обучение node.js\udemy_nest_js\top-api\node_modules\@nestjs\core\injector\injector.js:119:24)
页面模块:
import { Module } from '@nestjs/common';
import { TypegooseModule } from "nestjs-typegoose";
import { TopPageController } from './top-page.controller';
import { TopPageModel } from './top-page.model';
@Module({
controllers: [TopPageController],
imports:[
TypegooseModule.forFeature([
{
typegooseClass: TopPageModel,
schemaOptions: {
collection:'TopPage'
}
}
])
]
})
export class TopPageModule {}
页面模型:
import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses';
import { prop } from '@typegoose/typegoose';
import { ProductCharacteristic } from '../product/product.model';
export enum TopLevelCategory{
Courses,
Services,
Books,
Products
}
export class HhData{
@prop()
count:number;
@prop()
juniorSalary:number;
@prop()
middleSalary:number;
@prop()
seniorSalary:number;
}
export class TopPageAdvantage{
@prop()
title:string;
@prop()
description:string;
}
export interface TopPageModel extends Base{}
export class TopPageModel extends TimeStamps{
@prop({ enum: TopLevelCategory })
firstCategory:TopLevelCategory;
@prop()
secondCategory:string;
@prop({unique:true})
alias:string;
@prop()
title:string;
@prop()
category:string;
@prop({type: () => HhData})
hh?:HhData;
@prop({type: () => [TopPageAdvantage]})
advantages:TopPageAdvantage[];
@prop()
seoText:string;
@prop()
tagsTitle:string;
@prop({type: () => [String]})
tags:string[];
}
解决方案
在猫鼬中,您可以直接存储数组项,如下所示
users: [{ type: String }],
如果要存储类类型,则可以在数组中指定对象类型
users: [{ type: Object }],
推荐阅读
- amazon-web-services - 即使存在数据,弹性搜索也会返回空结果
- mysql - 链接服务器 - 可以看到表但不能看到列
- c# - 为什么VB.NET中的动态对象调用TryInvokeMember而不是TryGetMember
- php - RabbitMQ 在 MQTT 中的 ACK 实现
- git - 分支说“已经是最新的”,即使我合并分支时它们是不同的
- python - 在 Python 中应用函数后如何更改数据帧的索引?
- r - 预期结果的输出差异
- c# - 如何在不创建许多计时器对象的情况下创建许多事件
- arrays - jq 将字节整数数组内爆为原始字节
- ansible - Ansible使用拆分变量将行添加到文件