类型错误:无法读取的未定义的属性“指明MyDate”
我试图做一个相当基本的代码工作,但收到浏览器错误。 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) ;
}
}
回答如下:
你需要这个功能转换成箭头功能
public getReportTable = (req: Request, res: Response) => {}
说明:因为你传递的函数作为参数,该this
值仍处于先前的功能方面
- Typescript documentation for functions#this
- Typescript arrow functions
类型错误:无法读取的未定义的属性“指明MyDate”
我试图做一个相当基本的代码工作,但收到浏览器错误。 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) ;
}
}
回答如下:
你需要这个功能转换成箭头功能
public getReportTable = (req: Request, res: Response) => {}
说明:因为你传递的函数作为参数,该this
值仍处于先前的功能方面
- Typescript documentation for functions#this
- Typescript arrow functions