类型错误:无法读取的未定义的属性“指明MyDate”

问题描述 投票:0回答:1

我试图做一个相当基本的代码工作,但收到浏览器错误。 expressjs日志显示了错误也是如此。

类型错误:在Layer.handle [按handle_request](XXX \ node_modules \表达\ lib中\路由器\层无法读取属性在getReportTable的未定义 '指明MyDate'(70 XXX \ DIST \控制器\ CRM \ uploadHealthTable.js::18)。 JS:95:接下来的5)在(XXX \ node_modules \表达\ lib中\路由器\ route.js:137:13)

import { Request, Response } from "express";
import * as mongoose from "mongoose";
import { uploadHealthTableSchema } from "../../models/crm/uploadHealthTableModel";

const reportTable = mongoose.model("USER_UPLOAD", uploadHealthTableSchema);

export class UploadHealthTable {

private myDate = new Date() ;

    public getReportTable(req: Request, res: Response) {
    reportTable.find({companyId: "18", uploadTime: { $gte: this.myDate.setDate(this.myDate.getDate() - 5) } },
    "_id fileName status uploadTime", { sort: {uploadTime: -1} }, (err, report) => {
        if (err) {
        res.send(err);
        }
        res.json(report);
    });
    }
}

调用该函数 -

export class CRMRoutes {
    public uploadHealthTable: UploadHealthTable = new UploadHealthTable() ;

    public routes(app: any): void {

        app.route("/support/reporttable/1/all")
        .get(this.uploadHealthTable.getReportTable) ;
    }
}
node.js typescript express mongoose
1个回答
0
投票

你需要这个功能转换成箭头功能

public getReportTable = (req: Request, res: Response) => {}

说明:因为你传递的函数作为参数,该this值仍处于先前的功能方面

Useful links:
© www.soinside.com 2019 - 2024. All rights reserved.