2016-06-01 43 views
0

私は実装しようとしているJSONを返すこのシンプルなget要求を持っています。私は、ExpressのWebフレームワークのREST APIのためのチュートリアルに従っていますが、何らかの理由で私は同じエラーExpress REST APIの応答メソッドが認識されません

ERROR得続ける:

TypeError: res.status is not a function 

または

TypeError: res.json is not a function 

index.js:

var express = require('express'); 
    var router = express.Router(); 
    var pg = require('pg'); 
    var connectionString = 'pg://postgres:[email protected]/feed'; 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 

}); 

router.get('/api/leaderboard', function(resp, req){ 
    var results = []; 
    pg.connect(connectionString, function(err, client, done){ 
     if(err){ 
     done(); 
     console.log(err); 
     return res.status(500).json({ success: false, data: err}); 
     } 
     var query = client.query("SELECT * FROM log WHERE (logged >= date_trunc('week', CURRENT_TIMESTAMP - interval '1 week') AND logged <= date_trunc('week', CURRENT_TIMESTAMP));"); 
     var counter = 0; 
     var b1 = {}; 
     var b2 = {}; 
     var b3 = {}; 
     var b4 = {}; 
     b1.energy_sum_week = 0; 
     b2.energy_sum_week = 0; 
     b3.energy_sum_week = 0; 
     b4.energy_sum_week = 0; 
     b1.zne_sum_week = 30000; 
     b2.zne_sum_week = 30000; 
     b3.zne_sum_week = 30000; 
     b4.zne_sum_week = 30000; 
     query.on('row', function(row){ 
      //results.push(row); 
        if(row['address'] == 215){ 
        b1.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 
        } 
        else if (row['address'] == 1590) { 
        b2.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 

        } else if (row['address'] == 1605) { 
        console.log(row); 
        b3.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 

        } else if (row['address'] == 1715) { 
        b4.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 
        } 

     }); 
     query.on('end', function(){ 
     done(); 
     //make zne lower than everything 
     results.push(b1); 
     results.push(b2); 
     results.push(b3); 
     results.push(b4); 
     resp.json(results); 

     }); 

    }); 

}); 


module.exports = router; 

応答オブジェクトを認識できないようです。リクエストとレスポンスをクエリコールバックに渡し、約束を使用するなど、さまざまなことを試してみました。 ここでちょっと必死行き方:res変数は現在のコンテキスト内に存在しない/

答えて

4

は、おそらくライン

router.get('/api/leaderboard', function(resp, req){ 

あなたはrespを渡している

router.get('/api/leaderboard', function(req, res){ 
+0

私はそれを混ぜた!私は昨日それを見つけた。今すぐ寝る前に掲示しなければなりませんでした。私は担当者を失いました: '(でも、ありがとうございます:) –

0

このフォームを持っていたことを期待reqオブジェクト、reqrespオブジェクトです。 注文を変更してみてください。

router.get('/api/leaderboard', function(req, resp){...} 
関連する問題