2016-11-13 10 views
0

私はテーブルクイズからクイズを取得しようとしており、それを取得した後 テーブルの質問から答えの配列にしようとしています。しかし、それは私が質問は、私はすでに 表に追加しましたthis.add方法にquestionDto(JSON)を送信内部リクエストから値を取得する方法。関数戻り値はありません

を仕事と回答して

var question = require('../models/question'); 

function Quiz() { 
    this.getById = function(quizId,res) { 
    connection.acquire(function(err, con) { 
     con.query('select * from quizes where `id` = ? ', quizId, 
    function(err, result) { 
     con.release(); 
     result.questions = question.getAllByQuizId(quizId); 
     res.send(result); 
     }); 
    }); 
    }; 

を追加する必要はありません。 question.getAllByQuizId(quizId);は一連の質問を返さなければなりません。ここでは、実装

function Question() { 

    this.getAllByQuizId = function(quizId) { 
    return connection.acquire(function(err, con) { 
     return con.query('select * from questions where `quizId` = ? ', quizId, function(err, rows) { 
     if (err) throw err; 

     con.release(); 

     console.log(JSON.parse(JSON.stringify(rows))); 
     return JSON.parse(JSON.stringify(rows)); 
     }); 
    }); 
    }; 

にconsole.log()該当する値が、私は取り組むために時間を無駄にしている

未定義の関数の戻り値を返すです。しかし、まだそれは機能で非同期ブロックを持っているとして、あなたは代わりに「復帰」のこれを処理するコールバックを渡す必要があり

+0

あなたが「question.getAllByQuizIdを(呼び出しているところから、 quizId); '? – Aruna

+0

私が提供した最初のチャンクから(機能Quiz()) result.questions = question.getAllByQuizId(quizId); –

+0

私は以下を更新しました。したがって、 – Aruna

答えて

1

を:(することはできません。

var question = require('../models/question'); 

function Quiz() { 
    this.getById = function(quizId,res) { 
    connection.acquire(function(err, con) { 
     con.query('select * from quizes where `id` = ? ', quizId, 
    function(err, result) { 
     con.release(); 
     question.getAllByQuizId(quizId, function(err, data){ 
      if(err) { 
       throw err; 
      } else { 
       result.questions = data; 
       res.send(result); 
      } 
     }); 
     }); 
    }); 
    }; 

function Question() { 

    this.getAllByQuizId = function(quizId, callback) { 
    connection.acquire(function(err, con) { 
     con.query('select * from questions where `quizId` = ? ', quizId, function(err, rows) { 
     if (err) callback(err); 

     con.release(); 

     console.log(JSON.parse(JSON.stringify(rows))); 
     callback(null, JSON.parse(JSON.stringify(rows))); 
     }); 
    }); 
    }; 
+0

** quizIdは定義されていません** - >ここでquestion.getAllByQuizId(quizId –

+0

これはquiz.getByIdが呼び出された場所を渡しているようです。それが未定義となっている理由を確認してください。 – Aruna

+0

元のコードをそのまま更新しました。これをチェックしてください – Aruna

関連する問題