У меня в разработке находится приложение Node.js, которое пытается получить список клиентов. Он использует последнюю версию Express и Passport.
Я пытаюсь добиться возврата данных из метода контроллера и использовать EJS для передачи данных в представление.
Пожалуйста, смотрите мой код ниже.
routes.js
var clientController = require('../app/controllers/clientController');
// Dashboard page.
// This should be protected, the user has to be logged in to make a request.
app.get('/dashboard', isLoggedIn, function (req, res) {
var clientData = clientController.findAll;
console.log(clientData) // This outputs '[Function]'
res.render('dashboard.ejs', { user: req.user, clients: clientData })
})
clientController.js
const Client = require('../models/client');
var clientController = {}
clientController.findAll = function(req, res) {
Client.find(function (err, clients) {
res.send(clients)
});
};
module.exports = clientController;
dashboard.ejs
<!-- I'm trying to keep it simple at the moment. -->
<%= clients %>
Текущее поведение приложения заключается в том, что оно просто выводит необработанный код Javascript.
function (req, res) {Client.find (функция (err, клиенты) {res.send (клиенты)}); }
Я не получаю никаких ошибок в консоли (кроме [function]
, о котором я упоминал ранее)
Если бы я изменил маршрут на app.get('/dashboard', clientController.findAll)
, он в некоторой степени работает, он будет отображать только вывод Json для пользователя. Это то, чего я не хочу. Я надеялся, что смогу вызвать другие контроллеры и «объединить» их в одном ответе.
Если бы кто-нибудь мне помог, я был бы очень признателен.
Спасибо