Я создаю новый объект из класса в конструкторе, и всякий раз, когда он выполняется, я получаю ошибку, которая работает, не определена в методе, хотя она определена в конструкторе. Эксплуатация себя тщательно протестирована и отлично работает в отдельном контексте, так что это не проблема. Я строю его с Бабелем, не работает непосредственно в узле 7.0.0новый объект в конструкторе из класса undefined
import Operate from "./operate"
export default class {
constructor(Schema) {
this.schema = Schema
this.operate = new Operate(this.schema)
console.log(this.operate.run) // <- Logs just fine
}
update(req, res) {
console.log(this.operate.run) // <- Nada
this.operate.run(req.body)
.then(value => {
res.status(200).json(value)
})
}
Это чувство, что я что-то фундаментальное отсутствует. Я слышал, что это не очень хороший образец, поэтому, пожалуйста, не стесняйтесь предлагать лучший способ. Большое спасибо заранее.
UPDATE: Это обновление используется. Я не подозреваю, что есть какие-либо проблемы здесь, как он работал нормально, когда я был импортирование контроллера в качестве функции из другого модуля, вместо класса
import {Router, } from "express"
import Controller from "../controller"
import User from "./user.model"
let controller = new Controller(User)
let router = new Router()
router.post("/", controller.update)
module.exports = router
как вы «исполнение» обновление? –
Это функция, переданная в экспресс-маршрут. –
проблема заключается в том, что 'this' в вызове обновления, возможно, не определено? попробуйте 'console.log (this)' в верхней части обновления, чтобы увидеть, что это –