Lớp này được sử dụng để mở rộng tất cả các bộ điều khiển bên trong expressjs ứng dụng của tôi:ES6 Class, vượt qua chức năng như tham số
import response from '../utils/responseParser.js';
const APISLUG = '/api/v1/';
export default class BaseController {
constructor(name, app, model){
this.model = model;
this.app = app;
this.name = name;
console.log(model);
this.register();
}
register() {
this.app.get(APISLUG + this.name, this.all);
}
/*
Retrive all records
*/
all(req, res, next) {
this.model.all(req.body, (err, data) => {
if(err) return res.json(response.replyError(data));
return res.json(response.reply(data));
});
}
}
Như bạn có thể thấy tôi đã thực hiện một phương pháp "đăng ký" để tự động thiết lập tất cả các các tuyến cơ bản.
tôi nhận được một lỗi unable to read property " model " of undefined "
trên dòng này:
this.app.get(APISLUG + this.name, this.all);
Tôi tin rằng đây là do thực tế rằng phạm vi bị lạc khi tôi vượt qua các chức năng như tham số. Làm sao tôi có thể giải quyết việc này?
Cảm ơn bạn! nó hoạt động. –
Bạn được chào đón :) –
'.bind (this)' là phép thuật, cảm ơn bạn! – Robula