2016-03-21 11 views
2

を取得することはできませんので、私はここに私のルート内のMySQLデータベースから行を返す関数を使用しようとしています:ルート内の機能を使用してMySQLから行を返すようにしようと応答

.get('/users', function (req, res){ 
    res.send(userInfo(req.user.id)); 
}) 

はここで関数です。

function userInfo(id){ 
    colDB.query('SELECT username FROM users WHERE id = ?', [id], function(err, rows){ 
     if (err) 
      return {Error: defErrorMsg}; 
     else 
      return rows; 
})} 

私はノードにかなり新たなんだと、この作業ではありませんなぜ私が把握することはできません。 。。以下を試してみて、それが存在する前に、あなたが(それは同期だように非同期コードを処理する)値を返すしている私は、これはノードのコールバック自然とやっていると思う:(

答えて

2

助けてください:

function userInfo(id, callback){ 
    colDB.query('SELECT username FROM users WHERE id = ?', [id], function(err, rows){ 
     if (err) 
      callback(err, null); 
     else 
      callback(null, rows); 
})} 

そして、私は別のに.getルートの下に一つの文字列にその使用この機能を持っているいくつかに.getルートの結果を結合する方法はあり

.get('/users', function (req, res){ 
    userInfo(req.user.id, function(err, user){ 
     if(err) return res.send(err) 
     res.send(user) 
    }); 
}) 
+0

は、それが動作する素晴らしい!そして、このように見えるようにルートを変更? – merstik

+0

私は助けてくれるとうれしい!少し拡大できますか?私はあなたが何を意味するか分からない。 –

+0

私は最後にそれを仕上げました。再度、感謝します! – merstik

関連する問題