2016-10-10 2 views
0

У меня есть диаграмма папок, где у меня есть два контроллера файлов и маршрутизатор. Теперь я вытащил данные из mongodb в контроллере, что я пытаюсь передать его маршрутизатору, поэтому я могу отправить его клиенту с помощью api, но мне не удалось получить ответ в маршрутизатор, любая идея, что реализовано неправильно.Как передавать данные с контроллера на маршрутизатор в node.js?

Я упомянул папку diagram, потому что этот маршрутизатор предназначен именно для этой конкретной модели, которая будет отправлять ответ только на диаграмму.

diagram.controller.js

var Diagram = require('./diagram.model'); 
var mongoose = require('mongoose'); 
module.exports = function index() { 
     Diagram.find({}, function(err, res) { 
     if (!err) { 
      console.log('Response from controller', res); 
      return res; 
     } 
     }); 
    } 

diagram.router.js

var express = require('express'); 
var controller = require('./diagram.controller'); 

var router = express.Router(); 

console.log('THis is in router',controller.index()); 
router.get('/getAllDiagram',controller.index()); 

module.exports = router; 

ответ

3

Вы должны изменить ваш код немного.

Первым аспектом, который необходимо изменить, является способ передачи функции index маршрутизатору. Убедитесь, что вы не выполняете его напрямую. Эта функция будет вызываться express, когда запрос попадает на ваш сервер по определенному маршруту.

diagram.router.js

router.get('/getAllDiagram', controller.index); 

Следующее изменение в самой index функции. Функция получает два параметра от express: req - объект запроса и res - объект ответа:

diagram.controller.js

module.exports.index = function index(req, res) { 
    Diagram.find({}, function(err, result) { 
     if (err) { 
      console.error('Something bad happened: ' + err.message); 

      return res.status(500); 
     } 

     console.log('Response from controller', result); 
     res.json(result); 
    }); 
}; 

Пожалуйста, обратите внимание, что я переименовал переменная res в result.

+0

ТипError: Не удается прочитать свойство «json» undefined – hussain

+0

Переименовали ли вы переменную в 'Diagram.find ({}, function (err, result)' to 'result'? В противном случае она будет перезаписана, что приведет к указанному исключение – notion

+0

Я скопировал ваш код, поэтому его не перезаписал – hussain

Смежные вопросы