Olá pessoal, estou com um problema quanto à organização de rotas e controller. Por exemplo, onde coloco a lógica de programação? Dentro do diretório de rotas ou dentro do diretório de controllers? Outra coisa, eu estava colocando a lógica de programação dentro dos controllers e importando para dentro das rotas (para dentro dos arquivo de rotas, neste caso, pertencente a User.js), ficando mais ou menos assim:
Arquivo UsersController:
exports.userList = function (req, res) {
res.render("user/index");
};
Dentro do diretório de rotas, temos o arquivos users.js
const express = require('express');
const router = express.Router();
const user = require('../controllers/users/usersController');
router.get('/', user.userList());
module.exports = router;
Dentro do entry point, index.js, temos a importação:
const user = require('./routes/user');
app.use('/user', user);
Agora vem o erro quando inicio o server:
C:\Users\Geraldo\Documents\jobOverflow\controllers\users\usersController.js:78
res.render("user/index");
^
TypeError: Cannot read property 'render' of undefined
at Object.exports.userList (C:\Users\Geraldo\Documents\jobOverflow\controllers\users\usersController.js:78:6)
at Object.<anonymous> (C:\Users\Geraldo\Documents\jobOverflow\routes\user.js:5:22)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (C:\Users\Geraldo\Documents\jobOverflow\index.js:16:14)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
[nodemon] app crashed - waiting for file changes before starting...