Есть фал роутинга вот его часть:
var express = require('express');
var router = express.Router();
var Todo = require('../models/todo');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index');
});
router.get('/api/todos', Todo.getAllTodo);
Есть файл models/todo,js
Вот его часть
'use strict';
var modelTodo = require('../dbModels/modelTodo');
var Todo = {};
var todo;
Todo.getAllTodo = function(req, res) {
modelTodo.find(function(err, todo){
if(err){
res.send(err);
}
res.json(todo);
});
};
В общем задача сделать todo List, я сделал все работает. Но начальство сказало что модель вообще не должна знать о req и res
Вот я не могу понять как это сделать. Пробовал так:
но тогда в консоли выводит вот это:
Todo.getAllTodo = function() {
var responce;
responce = modelTodo.find(function(err, todo){
if(err){
return {'err': true, 'data':todo };
}
return {'err': false, 'data':todo };
});
return responce();
};
Server has started, we`re listening to port 3030
{ options: {},
safe: undefined,
_conditions: {},
_updateArg: {},
_fields: undefined,
_geoComparison: undefined,
op: 'find',
model:
{ [Function: model]
base:
{ connections: [Object],
plugins: [],
models: [Object],
modelSchemas: [Object],
options: {} },
modelName: 'Todo',
model: [Function: model],
db:
{ base: [Object],
collections: [Object],
models: {},
replica: false,
hosts: null,
host: '127.0.0.1',
port: 27017,
user: undefined,
pass: undefined,
name: 'todo',
options: [Object],
_readyState: 1,
_closeCalled: false,
_hasOpened: true,
_listening: true,
_events: {},
db: [Object] },
schema:
{ paths: [Object],
subpaths: {},
virtuals: [Object],
nested: {},
inherits: {},
callQueue: [],
_indexes: [],
methods: {},
statics: {},
tree: [Object],
_requiredpaths: undefined,
options: [Object],
_events: {} },
options: undefined,
collection:
{ collection: [Object],
opts: [Object],
name: 'todos',
conn: [Object],
queue: [],
buffer: false } } }
Так же пробовал сделать так:
Todo.getAllTodo = function() {
var responce;
modelTodo.find(function(err, todo){
if(err){
responce = {'err': true, 'data':todo };
}
responce = {'err': false, 'data':todo };
});
return responce;
};
По логике если переменная объявлена за границами функции, то внутри функции ее значение должно измениться, но в консоли вобще ничего не выводит.
P.S. В консоли вывожу так:
console.log(Todo.getAllTodo());
в файле роутинга. Подскажите пожалуйста в чем может быть проблема. Я уже не знаю что делать...