Reputation: 1205
I'm trying to create an API using express, but having difficulties with the initial setup, I'd like to have separate classes for the controllers & managers, but keep getting the following error when trying to register my routes:
Cannot read property 'post' of undefined
Here is my setup so far:
app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
var UserController = require('./lib/controllers/user/user.controller');
userController = new UserController();
app.use('/user', userController);
app.listen(port);
console.log('Listening on port 3000...');
module.exports = app;
user.controller.js
const {register, login} = require('../routes').user;
var userManager = require('../../managers/user/user.manager');
const express = require('express');
const expressApp = express.Router();
class UserController {
constructor(
) {
userManager = new userManager();
this.expressApp.post(register, this.register.bind(this));
}
register(request, response) {
return userManager
.register(request)
.then(result => response.status(statusCodes.OK).json(result))
.catch(e);
}
}
module.exports = UserController;
Upvotes: 0
Views: 219
Reputation: 1544
In UserController
's constructor
.
You're trying to use this.expressApp
while this.expressApp
is not defined.
Upvotes: 1