2016-04-02 2 views
0

Я использую обещания при настройке ответов. Мой код выглядит примерно так:Экспресс-ответ undefined in prom

app.get("/api/assignment/user", getUserByUsername); 

function getUserByUsername (req, res) { 
    var username = req.query.username; 
    model.findUserByUsername(username) 
     .then(defaultJsonResponse(res), notFound(res)); 
} 

function defaultJsonResponse(res) { 
    return function(nObj) { defaultJsonResponse(nObj, res)}; 
} 

function defaultJsonResponse(njson, res) { 
    if(njson) res.json(njson); 
    else notFound(res, "error"); 
} 

Когда я бегу getUserByUsername метод я получаю TypeError: Cannot read property 'json' of undefined. У меня возникли проблемы с пониманием, почему ответ undefined в defaultJsonResponse(njson, res)

+0

Вы должны передать обратный вызов 'then', а не результат вызова функции. Оберните их в выражения функций. – Bergi

+0

Почему у вас есть функция defaultJsonResponse, определенная дважды? Вам также не хватает скобок после инструкции if/else. – user2263572

+0

@ user2263572, там нет необходимости в скобках. Вы уверены, что получаете ответ? Если да, можете ли вы предоставить JSON? – Filipe

ответ

0

Ответ, как сказал @Bergi в комментарии выше, что мое отсутствие понимания функции JavaScript перегрузкой. Проблема была исправлена, просто давая методам 2 разных имени.

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

  • Нет связанных вопросов^_^