Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 静态方法中的语境松动_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 静态方法中的语境松动

Node.js 静态方法中的语境松动,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我做错了什么? 我有一个模式 import * as mongoose from 'mongoose'; const PolicySchema = new mongoose.Schema({ number: { type: 'String', required: true }, startDate: { type: mongoose.Schema.Types.Date, required: true }, endDate: { type: mongoose.Schema.Types

我做错了什么?
我有一个模式

import * as mongoose from 'mongoose';

const PolicySchema = new mongoose.Schema({
  number: { type: 'String', required: true },
  startDate: { type: mongoose.Schema.Types.Date, required: true },
  endDate: { type: mongoose.Schema.Types.Date, required: true },
 ],
});

PolicySchema.statics.lookup = function() {
  console.log(this);
};

export {PolicySchema};
当为我服务时,我称之为

@Injectable()
export class PolicyService {
  async test() {
    this.policyModel.schema.statics.lookup();
  }

    constructor(@InjectModel('Policy') private readonly policyModel: Model<Policy>) { }
}
@Injectable()
出口类保单服务{
异步测试(){
this.policyModel.schema.statics.lookup();
}
构造函数(@InjectModel('Policy')私有只读policyModel:Model){}
}
在控制台上,我可以读取我的“This”上下文,它只是一个{lookup:[函数]} 我的错在哪里
在“This”上,我想获得聚合或模式之类的函数

也许我说错了?
请帮帮我:)

附言。
我使用了一个nest.js

我查看了文档:

看起来您可以直接在模型上调用
静态
函数,尽管您可能需要为您的模型创建一个包含新函数的接口

所以,上面的例子应该是

接口策略模型扩展模型{
查找:()=>void;
}
@可注射()
出口类保单服务{
异步测试(){
this.policyModel.lookup();
}
构造函数(@InjectModel('Policy')私有只读policyModel:policyModel){}
}

执行此操作时,会出现错误“类型“Model”上不存在属性“lookup”。“我更新了上面的示例,为包含函数的模型添加了一个Typescript接口。这应该解决这个问题。)之后就是工作了,谢谢