[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: express.js + node.js не могу найти ошибку.
clocwerk
Доброе утро форумчане. Изучаю основы node.js + express.js
Есть фал роутинга вот его часть:

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());

в файле роутинга. Подскажите пожалуйста в чем может быть проблема. Я уже не знаю что делать...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.