2015-06-26 3 views
0

Im пытается создать функцию, поэтому я не использую тот же код снова и снова, но я продолжаю получать внутреннюю ошибку. Я получаю данные, а затем получаю внутреннюю ошибку, поэтому, если я что-то изменил необходимо обновить страницу, чтобы быть updated.I косяк понять, почему я получаю error.Here это ошибкаПопытка создать функцию nodejs express

GET http://localhost:3000/api/pages 500 (Внутренняя ошибка сервера)

объектов {данных: «», состояние: 500, конфиг : Object, statusText: «Внутренняя ошибка сервера»}

Код:

function Get(some,that,res){ 
    return some.find(function(err,that) { 
     if (!err) { 
     return res.send(that); 
     } else { 
     return res.send(500, err); 
     } 
    });  
}; 

router.get('/pages', sessionCheck, function() { 
    Get(Page,pages,res); 
}); 

ОБНОВЛЕНИЕ: я могу сделать что-то не так, поэтому давайте возьмем его с самого начала. Как я могу создать функцию, которая делает это, чтобы я не повторно использовал один и тот же код снова и снова.

router.get('/pages', function(request, response) { 

     return Page.find(function(err, pages) { 
      if (!err) { 
       return response.send(pages); 
      } else { 
       return response.send(500, err); 
      } 
     }); 
    }); 

и вот мой полный код

var express = require('express'); 
var router = express.Router(); 
var mongoose = require('mongoose'); 
var Page= require('../models/page.js');  
var bcrypt = require('bcrypt-nodejs'); 



function Get(some,that,response){ 
    return some.find(function(that,err) { 
     if (!err) { 
      return response.send(that); 
     } else { 
      return response.send(500, err); 
     } 
    });  
}; 

router.get('/pages', sessionCheck, function(request,response) { 
    Get(Page,pages,response); 
}); 
+0

поможет опубликовать ошибку – GillesC

+0

ой и в маршрутизаторе вы устанавливаете функцию() {} без аргументов, передающих их под ними. Откуда берутся «Страница, страницы, res». – GillesC

+0

его переменные я определил, что ссылка на Schemas.i попыталась определить их внутри функции, но все равно. –

ответ

0

маршрутизатор. МЕТОД сначала вызовет вашу функцию sessionCheck. Затем вам нужно будет вызвать next() в пределах sessionCheck, чтобы вызвать следующую функцию, в которой вы не определяете какие-либо параметры (обычно вы определяете req, res).

0

Если вы используете выразить свой вызов функции, вероятно, следует:

function someGetFunc(req, res, next) 

Вы Рез в качестве третьего параметра, так что может быть проблемой.

Теперь функция Get, указанная выше, является внутренней для анонимной функции, которая не принимает параметров, поэтому то, что вы передаете в нее, является неопределенной или ссылкой на глобальные переменные области видимости.

0

нормально я установил его как что я не должен оставили функцию пуст, требуется Рез, REQ

function Get(Some,that,res){ 
    return Some.find(function(err,that) { 
     if (!err) { 
      return res.send(that); 
     } else { 
      return res.send(500, err); 
     } 
    });  
}; 

router.get('/pages', sessionCheck,function(req,res) { 
    Get(Page,pages,res); 
});